Many are I'm sure familiar with the fact that lack of work experience with C# and .NET can create real career advancement impediments for Windows programmers. .NET was designed with the intention of making software development easier. The runtime's event model makes GUI programming more convenient than using MFC, WTL, or VB. ASP.NET offers clear superiority over the ASP VBScript/IDispatch runtime. ADO.NET is in many ways more clearly thought through than ADO. .NET assembly versioning is a lot easier to deal with than that offered by COM.
Yet, years of experience with the .NET environment is a strong prerequisite for most positions that I see advertised. This usually trumps other possible considerations like depth of experience with complex codebases, troubleshooting skills, etc.
It suggests that .NET's 2001-2002 vintage marketing hype didn't really convert into reality -- there must be nuances within the CLR that are lost on those who may have grown up on a diet C++, VB, and COM.
Apart from obvious things like parameter passing, interfaces, object lifetime management, gui resources, and language syntax changes, what are the battle scars that distinguish experienced .NET developers? Book and article recommendations are greatly appreciated.
This is not meant as a disingenuous question.