そのエミュレータみたいな仕組みを
インタープリタ・JIT・Hotsppot・バイトコードCPU(実現しなかった)
のどれで実現してもよいのがJava VMだな。

.NETでもVESがネイティブコードに変換しなきゃいけないルールはないよ。
実装はないがILインタープリタでもかまわない。