The tree-based GP, which evolves functional programs, is more evolution-friendly than its imperative counterpart - the register machine GP. The register machines are nevertheless attractive because they imply compilation into native binary machine code, which runs faster. The literature says that you must choose one of these representations. Yet, I see that you can keep and evolve your genome as functional tree of expressions and convert it into imperative "phenome" whenever execution is required!
So, you can have both at the same time! There is no need to manipulate the native machine code directly, as AIM-GP (Automatic Induction of Machine Code) does (ok, incremental compilation can be beneficial)!
Ah, I see: Incremental compilation cannot exploit the low-level strengths, like manual programming directly in assembler. Compiled programs are typically better than asm because mastering machine level specifics is difficult. But, as soon as it is done automatically, results can be much better. On the other hand, they say that they had to annotate the CISC instructions to maintain borders between them. This is like building a compiler.
And of course, genes must be sexual and homologous.