And, with high core counts, we can start playing with things like dedicating cores (and their L1 caches) to single tasks, kind of specializing them as we do with mainframes.
that is why I tend to eye the ~6 core machines for desktop use, higher single core mhz on them
I still think we can push the envelope a bit further for most common desktop software.
The software developers could do a lot for memory throughput hungry applications (datastructure layout, not using bloated strings for everything, not using linked lists, etc.), alas memory based optimizations almost never happen and tend to require a great deal of hardware understanding + non scripting language(s).
L1 and L2 grow linearly with the number of cores. If you have cores to burn, pinning processes makes a lot of sense.
Pinning makes most sense in NUMA indeed. Nowadays my impression is that often times the multicore/socket hardware tend to be chopped down by virtual machines, though.
There is no such thing as too many cores ;-)