Problem is that you don't have dedicated I/O and memory busses per core.
Except that the frameworks that apps are built on get more and more bloated.
Again, assuming you have enough I/O resources and pins. That's where a SOC could come in super handy.
Depends on what kind of parallellism. Doing unrelated tasks in different threads benefits from highly multicore processors. Scale-out computing such as my clusterized FDTD EM simulator needs very low latency interconnect and so benefits very much from symmetric multiprocessor (SMP) CPUs, which have enough interconnect fabric that every core can access all of memory directly.
The problem with super large SMPs is that the cache-coherence traffic scales faster than linearly with core count, so you eventually run out of gas. Nonuniform memory access (NUMA) machines don't handle as wide a range of problems well. A lot of computer design work goes into handling that little problem.
Cheers
Phil Hobbs