With node/io and Go, servers have been build-from-source for a while.
Given the snarly mess of frameworks/tools/languages/abstractions used in web dev, it's not obvious you'd get worse performance or inferior code using JIT LLVM and some newly minted update of Visual Basic or Swift with component/object/view caching.
And the trend is for it to get less huge.
E.g. Bootstrap already uses the words "custom build" for a rebuild, and js-world has gulp and grunt for "building".
There's already been serious talk about either throwing out the DOM or abstracting it with something closer to a native code model.
Honestly, I'll be surprised if this doesn't happen within the next few years.
What is obvious, however, is that more users have a Web browser on whatever device they want to use to use your software than have a virtual machine environment for any language besides JavaScript.
Except, you know, that part about running on the open web. The web is a deployment platform. Developers want to write the least amount of code to be able to support the most users possible. That was supposed to be Java, but it didn't work out that way. Deployment is still a platform-specific issue in Java, because users--for whatever reason--hate WebStart and its ilk. Add to that the fact that smartphones just plain don't support Java in that way and suddenly the browser makes for the only pragmatic cross-platform toolkit for building applications.
Yeah, JS sucks. Yeah, DOM sucks. Objectively, they are terrible. But for as bad as they are, there aren't any good alternatives. And no, building from source is not an alternative.