El problema de los procesadores multinúcleo / multihilo, es que cuando veis en los programas que usa más de dos cores o hilos, creéis que los usa de forma simultanea, y esto en realidad no es así.
Cuando estas aprendiendo a programar, digamos una programación avanzada, te das cuenta que un procesador no trabaja con sus cores al unísono, sino que más bien, se reparten la carga de varias operaciones "por turnos".
Es decir, supongamos un Core i5, que tiene 4 cores físicos:
Cargará el core 1, y pasará al core 2, que cuando esté cargado de operaciones, pasará al 3, y así igual con el 4, y luego volverá al 1, y así continuamente.
Claro, en el momento de ejecutar cualquier cosa, un usuario no se da cuenta del proceso, pero un programador si se da cuenta, por que programa para cierta arquitectura compuesta, sea ARM o x86.
Y esto si se hace de forma correcta, que no todos los programas son escritos para aprovechar el hardware en el que se van a ejecutar. De ahí viene el concepto de "optimización"
Con los hilos de carga o "threads" en inglés, también llamados núcleos lógicos, pasa lo mismo, pero de forma más compleja.
Eso por una parte.
Por otra tenemos que, la arquitectura x86, como bien ha dicho Annubis, lleva lastrando tecnología de hace 10 o 20 años como poco (los zócalos PCI de 32 bits se han dejado de usar ahora hace muy poco). Y aun que la actual arquitectura se ha actualizado bastante, sigue siendo lenta comparada con otro tipo de máquinas más específicas. Sin contar que como bien ha dicho, actualmente la arquitectura RISC forma parte (una parte mínima) de la arquitectura CISC, ya que algunas instrucciones para estos procesadores, son pasados (traducidos por así decirlo) a instrucciones RISC antes de ser ejecutados de forma interna, así se aumenta el rendimiento.