The thing about 64 bit is that a lot of software are not optimized to work on multiple cores. It can be very hard to code depending on the kind of things you want the program to do. So you end up with a 64 bit software where 75% of the work is done by a single core. This is a serious bottleneck since we basically reached the maximum power per core. Cpu are getting more powerful only when multitasking, not really on intensive load unless the program is optimized to spread the workload efficiently.
So in some cases, the difference in performance between a 32 and 64 bit version is small.