Re Stephen
Thanks Stephen for the enlightenment. This does indeed look promising:
1) LLVM is not a "low level VM" like I thought. It is a framework for cross-compiling
2) The LLVM framework has some very interesting tools like code validation. Not the standard crappy stuff, but what looks like the "provably secure" verifier stuff I read about a while ago.
3) LLVM is modular, so many languages could be used
However, since LLVM is not actually a VM, it looks like no garbage collection or other high-level features we've come to expect from Java/.NET. Indeed Mono is crippled when outputing LLVM bytecode. But, what if it were to be combined with this:
http://lambda-the-ultimate.org/node/4165
It is essentially a compiler / runtime that can impelement a "VM" in hardware using creating garbage collection, modern processor memory mapping, and memory barriers.
It these things were combined, we could see a C# / Mono / "Hardware accelerated VM" programming environment with full type saftely, but the execution speed of native code, and (possibly) the security of Javascript.
I retract my previous comment, this could be something. Looks like it needs some more time to bake though, and better developer tools.