However, I think that in a few years we'll be in a situation where we'll see bytecode that out performs precompiled code.
The reason is simple: Bytecode can be optimized on-the-fly to fit the exact architecture of the machine it is running on (I.e. Anything from processor, memory size and cache to bus speed and various addon hardware (DSP, GPU etc.) can be considered during optimization - something you can't do in precompilation, unless you want 5000 different executables)
And because of the extremely strict rules that the bytecode adhere to, it is much easier to optimize than e.g. C++.
SUN's hotspot compiler is the first preview of the capabilities of this awesome technology!
/Niels