ああ、そういう意味でしたら納得です。
参照でも値でも同じように a + b や a.Method が使えるのに、
比較だけC++のように、a == b と *a == *b を使い分けないと駄目なのか?と思ったので。

operator = を意図した時は常に = を用い、変数そのものを比較したい時は常に == を用いる、と。
それなら、Unboxingを仮に*aとすると、
「a = b」 と 「*a == *b」 が同じ意味となり、何となくC++の==の意味も生きているっぽいかな…