First thing that comes to mind is the approach that Jurassic javascript [1] does using .Net IL generation, run that on a .Net based OS like Singularity [2].
The point is your jitting to an intermediate language thats verified and a system level jit actually turns that into machine code, you are never allowed to write machine code directly to memory and execute.
V8 basically does this internally with its bytecode, if your whole system was built on that bytecode then you can do software isolation rather than hardware.