Many languages that compile to native are rolling out WASM support, or have it in their roadmaps, but there are many more architectures and formats that you have to handle in native land.
I guess theoretically, if we agreed to support the main desktop and mobile/tablet OS’s and chip architectures, and then got everyone to use a standard compiler and IL format (LLVM maybe?) then you might get some of the way, but that would be a lot of work (cool if it happened though...)
The IL format is WASM, it's already here. When the browser gets WASM, it's free to interpret it or compile it to native code. AFAIK, it is already getting compiled to native, and I'm sure we'll see some awesome JITs coming to WASM.
The problem right now with warm
WASM is lack of features (e.g. you can't do threading), though those are getting sorted.
Targeting multiple architectures is a solved problem, as you said with LLVM. I don't know if that's how WASM is currently implemented, as a LLVM front-end, but I'm pretty sure most implementations in fact are proper native compiled, or they intend to be. As I said it would be silly to do it any other way.
I guess theoretically, if we agreed to support the main desktop and mobile/tablet OS’s and chip architectures, and then got everyone to use a standard compiler and IL format (LLVM maybe?) then you might get some of the way, but that would be a lot of work (cool if it happened though...)