Re Firefox, I guess the timing wasn’t right. With the current WASM support and reference types coming out soon(ish) building performant apps should be way easier. More so, there’s a possibility to run WASM in Ring 0, which opens up performance gains rarely seen in native.
Also, Apple tried going down the web app route long time ago, would be great to see them revisiting this idea in a year or so.
Apple's probably not going to revisit any web idea soon. There's a reason they killed Flash and Java on iOS - both being the most prominent cross platform techs.
I think WASM is still in an early phase, we'll probably have to wait for 2020 for it to catch on. It still needs: GC/direct DOM access, threads, and Javascript module integration, in my opinion: https://webassembly.org/docs/future-features/ Plus, even the MVP is only supported globally by 78% of the browsers out there: https://caniuse.com/#search=webassembly
Thing will get very interesting very quickly once WASM 2.0, basically, is created and it support is around 90%. But before that, it's kind of early to declare victory :)
I think some of the new APIs and general PWA support (workers, indexeddb etc.) are the more important changes since Palm Pre / iOS 1. Sure, better script engines and a few cycles of Moore's law seem neccessary, but that's sadly more of a reflection of all the performance wasted by the stack.
I'd argue that most apps are rather passive when it comes to displaying stuff, don't have to crunch numbers and don't manage a lot of data. So an 80s BASIC engine would be enough for it, if the APIs are done well (or 90s Tcl/Tk).
Games are an entirely different matter, of course. I don't see a lot of stuff in between.
I think the real performance bottleneck is the DOM, and WASM doesn't help with that. Perhaps a UI library that uses all WebGL is the only reasonable answer here.
Also, Apple tried going down the web app route long time ago, would be great to see them revisiting this idea in a year or so.