I find it interesting contrast Eric's comment that, in his admittedly limited scenerio, Linq is too slow to the recent lectures on the STL optimization by STL. Your comments suggest that a certian performance hit is the inevitable result of convenient interface. In contrast STL does not invariably have to sacrifice speed for a convenient interface, and compiler tricks often reduce to the code you would have written anyway, just more correct.
I find this curious because C# generics have a very different feature set than C++ templates, which the original designers could not have been ignorant of. Do you see the lack of metaprogramming as a strength or a weakness for C#. If C# had templates, would linq have used it? I already know you won't comment on the future of the compiler, so I won't even ask.