For a while I was working on automatic parallelization, and wrote plans, white papers, etc. but at some point was introduced to the current methods of automatic parallelization and saw that there are some pretty good solutions out there right now such as Intel's C++ compiler.
Ideally, everything would be compiled with something along those lines at which point the baseline for everything else would take advantage of multiple cores, at least in the simple to advanced cases without additional direction from the programmer.
After all, so long as you're not eval'ing you know the entire scope of the program and you can link things up as parallel independent queues. It requires more storage during compilation, and likely longer compilation times, but the performance result can be dramatic.
It's disconcerting that something like Intel's apparently wonderful automatic parallelization C++ compiler isn't more popular, even though it's demonstrably better performance-wise than anything else I've seen.