> especially if actual data sharing is the exceptional case
The problem is that cache coherence does not scale, given (note emphasis) that a certain amount of data is shared among CPUs.
You cannot circumvent the problem by choosing to not share much data between cores, because then you have changed the problem!