So kompliziert ist es garnicht.
Delphi-Quellcode:
a := 1;
b := 2;
a := a + b;
b := 3
würde nun wie folgt übersetzt
Delphi-Quellcode:
a := TMyRecord.Create(1);
b := TMyRecord.Create(2);
a := TMyRecord.Add(a, b); // a := TMyRecord.Create(a.Value + b.Value);
b := TMyRecord.Create(3);
Es werden fleißig neue Objekte erzeugt, welches mit Delphi-Objekten ja noch geht, aber wer würde sich nun um die vielen Objekte kümmern?
Es wäre ja nun fatal, wenn Delphi in diesem Fall die Referenz einfach so freigeben würde, denn ohne Referenzzählung weiß ja nur der Programmierer (sollte er zumindestens), ob noch andere Referenzen auf dieses Objekt existieren.