We don't know yet exactly how well an Athlon64 runs 32-bit code, and can't know how well it runs 64-bit code yet because there are few or no applications supporting x86-64, and Linux is the only OS that you might be able to get that runs in 64-bit mode on it right now. The various Opteron reviews can give you an idea of how the Hammer architecture does with existing 32-bit code. Basically Athlon64 shouldn't run much different from an AthlonXP on 32-bit code, and hopefully a good bit faster due to the optimizations, but as with the P4, the amount of work done per clock is actually less, so it could be a bit lower performance as well, but able to scale to higher speeds. As far as 32-bit code though, the A64 is just like if they'd designed the Athlon with the same pipeline length and L2 cache, and with an integrated memory controller. It runs completely as a 32-bit CPU if the OS is only 32-bit.
If the OS is 64-bit, then an application can run in 32-bit mode with no performance hit, and you can also run 64-bit code. The biggest thing for 64-bit is the memory addressability, but all the extra registers will probably result in better performance compared to the same application in 32-bit mode.
Itanium on the other hand can't natively run 32-bit code at all, or even any sort of x86 code. It has to translate x86 instructions to the IA-64 instruction set before it can work on the instructions. Severe performance hit. This was why we expected Intel to put a complete 32-bit core on the die with the Itanium core, but they changed their mind for some reason.