1. There is no such thing as "x64" 2. For most architectures, 32 vs 64 bit mostly just allows more more memory 3. For x86, 64-bit adds a number of new registers, which can improve speed. 4. For x86, you can only mix 32-bit and 64-bit apps by having two copies of your OS (32-bit and 64-bit).
So basically, to summarize: x86_32 vs x86_64 is weighing RAM vs speed. Many people prefer the RAM savings to the speed, and some have so much RAM that they opt for 64-bit. For non-x86 architectures, it is most logical to run a 64-bit kernel with 32-bit userland, and have only a few unique applications 64-bit.