>Why on earth are a lot of the .NET base classes marked as "sealed"?
Yeah, basically its a cop-out by Microsoft. The only thing that I can think of is that they don't want you subclassing certain classes (like the String class) because they want the freedom to change the implementation in the future without being accused of breaking your code.