Java (in the browser) was a plugin that was mostly completely sandboxed from the real page DOM with its own entirely separate (and very poorly designed -- AWT was horrendous) attempt at a UI layer. That's the problem it had, not the fact that it was a byte-code based VM.
Make the byte-code VM a first class citizen and things are completely different.
Even having the option to load a single JVM instance and share it between different frames/pages/tabs would be a tremendous improvement over current situation. At the present, the best you could do is to fake it using inter-frame communication (and some heuristic to elect most-likely to live longest), which is only slightly less bad.
Make the byte-code VM a first class citizen and things are completely different.