私が提案したいのは、
値比較 <-> 参照比較
という区別ではなく、
変数比較 <-> オブジェクトの中身比較
という区別にしてはどうか、ということです。

たとえば>>643の意向を汲んで変数比較を==、オブジェクト比較を=とすると、

==は参照型に対しては、同じオブジェクトを指しているかどうか、
値型に対しては独自にオーバーロードした=が成立するかどうか、
ということになりオーバーロード不可能。

=は、参照型だろうと値型だろうとオブジェクトの中身が同じかどうか、
ということでオーバーロードしなければいけません。

基本的な主張は>>648と同じで、
ただ値型に対しても==が使えるようにするべき、というだけです。