I think the answer to the question is because .net uses string interning something that might cause equal strings to point to the same object (since a strings are mutable this is not a problem)
(I'm not talking about the overridden equality operator on the string class)