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 ;-)
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.