32-bit applications run native assembly code on a 64-bit OS, and perform as well (and sometimes better) than on a 32-bit OS.
Native 64-bit compilation can make some things faster. Raw memory movement may be 10% faster for example, but there's also twice the memory overhead for a lot of things. I would say it's mostly a wash for performance.
Currently it makes a lot of sense for the OS to be 64-bit and not that much sense for most applications to be 64-bit.