The problem: the compiler right now has two types of hardcoded dependencies
1 - Language features selected at build time (CLOS, threads, etc)
2 - Machine-dependent features (word sizes, bits, etc)
It seems that in order to make cross-compilation easiest we can still preserve 1. while getting rid of 2. This would ideally empower ECL to build C code for 32-bit machines on a 64-bit platform.
In practice I am not sure how well this will work: in practice lisp code in many cases involves some partial evaluation (through eval-when and friends) which might fail if not written with care. For instance, this code might understand that 1000000000 is a fixnum which it is not on the target platform. Let's see...