Советую осилить эту технологию тем, что считает что веб для даунов, а настоящие суровые челябинские мужики пишут только на си. Можно кидаться мегабайтами байтиков из JS в сишечку, делать сложные вычисления и пихать результат обратно. Можно невозбранно таскать огромные массивы данных туда-сюда много раз в секунду, например полностью перерисовывать канвас быстрее чем за движение мыши. Фотошопные сложные кисти так реализуются без проблем, прям со смешиваним в сишечке буферов и прозрачностями. В особо упоротых случаях можно реализовывать чуть более чем всю логику веб-приложенечки в сях или крестах, а из JS только окончательные инструкции «чо делать» забирать. 5 мегабайтный джипег и айпхона, породивший ~51 мб сырых пикселей в памяти JS, улетел в webasm и преобразовался там в чёрно-белую фотку где-то за 35.9 мсек. При этом сам jpeg в сырые пиксели в js вызовом window.createImageBitmap() конвертился 125 мс.
В современных JS есть ещё API для воспроизведения сырых семплов звука. Я знал мужика, который в 2005 году умел в JS из памяти .wav файлы порождать, а щас-то вообще жесть содомия начнётся!
Безопасность: плоская модель памяти. Нет malloc()/free(), просто плоский шмат памяти от нулевого смещения и живи там. Нельзя увеличить память изнутри wasm-машины. Все указатели - смещения от этого нуля. Нет никой кучи, точнее этот шмат и есть куча и ты вечно в ней живёшь. Размер этого шмата можно увеличить извне wasm-машины, из того JS-кода, который машину запускает и использует. Можно даже реализовать в wasm функцию, которую вызывать из JS и которая будет говорить хочет ли wasm увеличить себе память или нет, а js будет подкручивать рубильник. Все аллокаторы - сам реализуй или линкуйся с каким-то malloc(), но он будет по-сути резать эту кучу на куски и тогда тебе в бинарник просто накладут всякого кала типа стандартных библиотек и будет не цимес. А цимес-то делать бинарники на пару килобайт, реализуя только нужную обработку байтиков. Аллокатор обычно не нужен - назаписывал что-то там в памяти и выкинул всё в конце.
Сравнения wasm с flash некорректны, все кто так делает - тупой. flash специализировался на анимациях векторной графики, а wasm не специализируется ни на чём, исполнение произвольного кода, молотящего байтики. На wasm можно реализовать аудиокодеки с шифрованием и использовать как движой аудиозвонков или можно действительно построить на wasm новый flash, не важно.