I think theres something to be said in favor of it. Not all programming languages have js execution model. Does js even support true concurrency already? Not last i checked: there goes a whole class of potentially useful applications. We really do want support for these things. It is good for creativity, therefore innovation, because we have more tools to work with.
True in the sense of multiple cores, instead of just asynchronous execution on a single thread. Anyhow, it was just an example... What I'm trying to say is that we want to really explore the capabilities of the web as a platform for computing, as much as possible. Therefore we need as much flexibility, tooling, languages, you name it, as possible. I'm actually suggesting the 'C++' way of creating a platform... i.e. stuff it with as much flexibility as you possibly (reasonably) can and then let natural selection do its work. JavaScript ain't it.
Web workers are atrocious though. They're very strangely hobbled by either requiring a serialize->deserialize round-trip when passing data back and forth, or you can sidestep it by 'transferring' the object across contexts (it then 'disappears' in the original context). The reasons for doing it rather than sharing are obvious (the race conditions would be hard to track down, etc.) - but there's no escape hatch for languages like ClojureScript which has immutable data-structures (and therefore don't care about mutable race conditions) and persistent/structural-sharing datastructures (and therefore would be very costly to serialize/deserialize, or totally broken by the transfer model).
I ran the Quake 3 demo. It was frameskipping all over. Performance was not acceptable for even playing. I think 10-15 fps. No, its not my laptop. My laptop has no problems with real Quake 3. I want to ask you to take a step back and look at it purely from a black box perspective. Forget about JavaScript for a moment. Is it really your opinion this is reasonable performance?