ネイティブだけにしちゃったら、
他のプラットフォームとバイナリ互換が保てないじゃん。
プラットフォームに適したネイティブコードがあればネイティブコードを実行
そうでなければ、中間コードをVM上で実行。