Good thinking. Indeed, the basic idea is to abstract away Threads from explicit thought (just as .NET and Java do in terms of memory allocation and lifetime management of objects via garbage collection). In fact, this is exactly what the TPL does (you program Tasks, not Threads, explicitly). This seems to be the direction the Parallel Computing Platform team is heading, but you the programmer will have to help us figure out if this is the right approach. Are threads evil? Of course not. The platform that we've built around them over the years was not designed for many-core processors so the current semantics of explicit threaded programming are, well, lacking for the general purpose programmer who simply wants to solve problems in object oriented and imperative way (sequential code composition). Rather than forcing you to learn a completely new way fo thinking, the goal is to fold concurrency and parallelism into the tools and compositional patterns already burned into your mind. Obviously, this is a very hard task, but a worthy and noble one.
See you in the middle,
C