При чтении "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" натолкнулся на такую фразу:
"Ensure that GetHashCode returns exactly the same value regardless of any changes that are made to the object".
Хм.... подумал я, о чем это они? Перед глазами всплыла стандартная реализация, которая генерируется ReSharper'ом и я осознал, что генерируемое значение не будет постоянным на протяжении жизни объекта при его изменениях.