From the performance graph (http://regmedia.co.uk/2011/10/20/arm_performance.jpg), two A7s would have the same raw processing power as one A15 - at less than half the power. The problem is we can't utilize that raw power effectively. So, instead, this awful, inelegant, stupid design is probably the absolute best we can do at the moment.
People claim that functional programming's immutability solves this problem. But it's interesting that while Erlang, one of the most effective multi-processor languages, is functional, it doesn't use that for multi-core: instead, it uses a shared-nothing architecture (like smalltalk) which is independent of the fp paradigm; and STM (Software Transactional Memory). The second interesting thing is that incredible rewards are available today for a solution (and have been for a while) - so where are the fp solutions? Why haven't they taken over, or had substantial success - or, at least, appeared?
Multi-core is a hard problem. Silicon is cheap but we don't know how to use it (excepting GPUs/CUDA). I think this will not be solved with any existing methods (including 50-year old fp). Instead, it will require a complete reframing of the question, from the silicon-up. That is, it won't even look like a programming language - or a computer.
It's hard to overstate the rewards for solving this.</provocativerant>