It's not a big secret that I spent years programming in other languages before coming to Microsoft--Java, PERL, C++ on UNIX, Pascal variants, Smalltalk, etc. One of the nice aspects about programming in those environments--well, some of them--is that you can see the code in the framework libraries and understand how they work and why they behave they way that they do. It wasn't unusual to debug down into the framework library and actually watch how the code executed.
I developed a good perspective on performance by looking at the hash functions for strings--I knew when it was time to search in a RDBMS rather than in a Java collection. There was probably an occasion or two that I'd want to submit a patch, but that was never my primary use of the source.
Now, thanks to the release of the source to the .NET Framework Libraries, we have the same opportunity to do that in .NET.