Cómo las expresiones Linq determinan la igualdad?

Estoy considerando usar una expresión de Linq como clave en un diccionario. Sin embargo, me preocupa obtener resultados extraños, porque no sé cómo la Igualdad está determinada por las expresiones de Linq.

¿Una clase derivada de Expression compara la igualdad de valores o la igualdad de referencia? O en otras palabras,

        Expression<Func<object>> first = () => new object(); 
        Expression<Func<object>> second = ()=>new object();
        bool AreTheyEqual = first == second;

Respuestas a la pregunta(3)

Su respuesta a la pregunta