Por que o código de máquina nativo não pode ser facilmente descompilado?

Com linguagens de máquina virtual baseadas em bytecode, como Java, VB.NET, C #, ActionScript 3.0, etc., você ouve algumas vezes sobre como é fácil baixar um descompilador da Internet, executar o bytecode nele uma boa hora e muitas vezes, crie algo não muito distante do código-fonte original em...