NHibernate: Razones para anular Equals y GetHashCode

¿Hay alguna razón por la cual Equals o GetHashCode deberían ser anulados en las entidades cuando se usa NHibernate? ¿Y en qué escenarios son válidas estas razones?

Algunas razones que se pueden encontrar en la web:

Soporte para carga diferida. La comparación de objetos proxy a través del método Equals predeterminado puede generar errores inesperados. Pero esto debería resolverse mediante un mapa de identidad (y realmente lo es en muchos casos), ¿no? Al trabajar con entidades de una sola sesión, todo debería funcionar bien incluso sin anular Equals / GetHashCode. ¿Hay algún caso en el que el mapa de identidad no desempeñe bien su rol?Es importante para las colecciones de NHibernate. ¿Hay algún caso en que la implementación predeterminada de GetHashCode no sea suficiente (sin incluir problemas relacionados con Equals)?Mezclar entidades de varias sesiones y entidades separadas. ¿Es buena idea hacerlo?

¿Alguna otra razón?

Respuestas a la pregunta(2)

Su respuesta a la pregunta