Compatibility between ISAs isn't guaranteed due to the different register sizes; however, if you're clever with your coding, you can write multi-ISA code.
Cross-width compatibility isn't a priority, though, as history shows to make a cross-width-compatible ISA, you need a lot of complex mechanisms in the hardware (defeating its RISC-y nature). It's expected the compiler will paper over the differences.
Note that x86-64 is also not compatible with x86-32. :) Not even x86 is immune.