В первую очередь: для корректной работы с хэш-коллекциями (типа Dictionary), а именно - при использовании в качестве ключа. Их внутренняя логика предполагает, что если для двух объектов Equals возвращает true, то и значения, возвращаемые GetHashCode, должны быть равны. Если это не так, то коллекция будет работать некорректно: скажем, не находить значения по ключу, хотя они там есть.