Der Grund ist auch relativ einfach erklärt: Records werden automatisch freigegeben, Klassen nicht. Angenommen du überlädst den + Operator und rechnest d := a + b + c
. a + b
ergibt ein temporäres Objekt das dann mit c verrechnet wird. Wer gibt das frei? Niemand. Speicherleck.
Macht nur leider kein Sinn bei Operatoren, die keine neuen Werte/Instanzen erzeugen, wie Vergleiche.