>Not really. 80386 included 275,000 transistors and already included all the components needed to handle segmented RAM. Security model was only minimally changed since then.
>Bytecode verifier is not important. It's tiny piece of software and yes, it can be verified. What is important is JIT. Either you use simple JIT (or no JIT at all) - and lose all these nice benefits from fast switching because your system just runs slow - or you use complex, spaghetti-like, unverifiable pile of crap which makes your "security" wishfull thinking.
Nope. Both are possible.
The key to this is to design your VM to actually use instructions that are close to the real hardware instead of abstract stack machines. In this case you can directly verify the code that is going to be executed on the real hardware.
That's exactly what Azul guys do - they translate Java bytecode into their own instruction set. Then the _translated_ code is checked for correctness and uses hardware assists for features like memory allocation and bounds checking.
LISP machines were doing similar things long time ago, sure. So what?