How do you get 4 + 8? But anyway, it's logical cores, not physical ones.
The kernel can multi-task processes, but each process still gets exclusive use of the CPU when it runs. So if it doesn't need an adder, that adder sits idle.
With hyperthreading you can run two processes at once and the CPU merges them at the instruction level making maximum use of the components on the CPU.