Step 1: Ship asm.js to every browser.
Step 1.5: Do a complete job of binding asm.js to all browser features. (My impression is that right now it doesn't do DOM manipulation, for instance.)
Step 2: Define a serialization of asm.js that is more like a traditional binary bytecode.
Step 3: Everybody compiles to that bytecode. No JS is in sight. Language diaspora slowly follows. Benchmarks start flying; JS, optimized as far as it can possibly be, still can't beat out more statically typed languages, though it only matters for the most performance-sensitive applications.
This is by far the most likely outcome at the moment, in my opinion. I'm not advocating or celebrating this (or necessarily upset about it, either), just observing the current landscape.
Yet, companies are demanding the devs to be more than frontend or backend devs. Look at the DevOps movement. JS allows your developers to work on both sides of the network with a single knowledge. It may become more than a blip, though I doubt it could ever takeover the backend or smartcards for instance.
So your point (correct me if I'm wrong) is that we'll be going down from JS to a lower-level paradigm, then "something" will bump and from this diaspora you're talking about, one language will prevail, I guess.
I like your perspective of viewing JS as the first native inhabitant of an island called "browser languages". Yet I'll need to think more before I can agree or disagree.
Thanks for the input!
For server side JS, I am curious how many who believe in Node can troubleshoot below the application layer.