We rejected this technique for two reasons:
1. Portability. If you use "the most appropriate tools" this probably
means your favorite C (or whatever) compiler. These almost always
generate machine code, which will only run on the platform it was
compiled for. There are many different CPU architectures on the net.
Java uses a bytecode that is machine independent that can either be
interpreted or compiled on-the-fly in the destination machine (the
current release only interprets).
2. Safety. One of the things about the intermediate code that Java uses
is that we can do a lot of analysis to check that the code fragment is
safe to use and isn't going to do something wild like overwrite memory
or remove random files. There are several documents on security in the
release that you should take a look at (they're pointed to from the
"documentation" entry of the "help" menu).
I don't know where you got the 10Mb number - the instance of the browser
running on my machine right now is using 4.7Mb.