So the declaration of Imperative languages (BTW a term only used by the opponents of this class of languages IIRC) has been stated before. To be more precise, in the last multi-CPU crisis in the 1970s. The fifth generation computers were a response to that last crisis: http://en.wikipedia.org/wiki/Fifth_generation_computer
So they actually designed the whole OS for that machine in KL1, based on Prolog, which is a functional language. I think the code is actually open source. There is a KL1-to-C translator but the FGCS inference machine ran the language natively, in machine code.
So why did the last crisis not switch all computer and language development to functional languages? What do I know. One official story goes that speculative execution and caches made imperative languages run faster than any of the machines designed to run e.g. KL1, and performace was all that mattered in the end.
Am I saying that the current "multicore crisis" will be solved by something totally different again? Not really, I like functional languages so I hope they will fit the bill this time.