https://en.wikipedia.org/wiki/UNCOL
https://en.wikipedia.org/wiki/Architecture_Neutral_Distribut...
https://en.wikipedia.org/wiki/P-code_machine
https://en.wikipedia.org/wiki/IBM_i#TIMI
Not bothering to list all of them since 1958, WebAssembly is only the latest go at it.
but also, look at its neighbors. Vulkan/SPIR-V has made it standard to ship bytecode-level shaders (graphical or compute) which are device agnostic but still performant. even if we’re cursed to try this “architecture agnostic” stuff a hundred times, i don’t think we can say there hasn’t been any progress. that progress only comes from people trying, even if 9 out of 10 serious attempts are flops.
So Wasm has a few legs up on what came before.
As for how sound the type system is in the face of attacks at the Flash, ActiveX and Java applets scale, it remains to be seen, although there are already some USENIX papers slowly coming up regarding WebAssembly actual security.
for example, these guys link to a discord channel to chat about their work, but i can’t join it easily because even though Discord ships a Linux client, they only ship it for x86 and not arm. further down the road, i’d like to try some RISC-V devices: that’ll be that same experience times ten. a portable assembly format has the chance to overcome this.