Les 64 bits ne veulent pas dire plus puissant.
On parle de mots 64 bits qui permettent plus de possibilités dans le codage (2^64>2^32: 32 bits qui permet environ 4 milliards de possibilités).
Les 64 bits sont utiles pour le calcul sur virgule flottante double précision mais il est possible de faire de la virgule flottante sur simple précision en 32 bits.
De plus 32 bits sont suffisants pour 99% des applications non scientifiques. Passer à des mots de 64 bits, c'est en gros faire ça:
0111 qui donne 00000111 (passage de 4 bits à 8, c'est un exemple) cela implique une quantité de mémoire (caches, mémoire vive) nécessaire deux fois plus importante. Autant dire que ce n'est pas si genial que ça.
Le seul intérêt, c'est le calcul vectoriel et la communication des donnes interne. Mais pour cela, ça fait bien longtemps que les processeurs ne sont pas que des 32 bits.
En effet, la plupart des processeurs disposent d'alu 64 bits pour le calcul des nombres flottants simple et double précision, des unités de calcul SIMD 128 bits (une instruction sur 4 mots 32 bits) et des bus de communication de 64, 128, 256 et même 512 bits permettant de faire circuler à chaque cycle 2, 4, 8 et 16 mots 32 bits à la fois.
On voit ici qu'utiliser des 64 bits lorsque cela n'est pas nécessaire fait qu'on perd ce parallélisme qui permet au cpu d'être performant.
Ainsi un bus de 128 bits ne pourra transiter que deux mots au lieu de 4. Si les mots veulent dire la même chose, autant dire qu'en pratique les 64 bits sera moins puissants.
Un smartphone n'a pas besoin de 64 bits, mais a besoin des unités vectorielles.
Et un processeur tel krait, est 32 bits pour la taille des mots qu'il utilise, 64 bits lorsqu'il veut calculer en virgule flottante deux mots à la fois, et 128 bits (NEON) pour exécuter une instruction sur 4 mots.
En gros, un processeur 64 bits c'est plus de mémoire utilisé et des mots plus lourds à manipuler.