man sollte es im Hinterkopf haben. Und dann sind Records wirklich ein praktisches Mittel für die Value Objekte.
Gerade nicht, Value Objekte sind per Definition unveränderlich, d.h. es gibt keine Setter um einzelne Eigenschaften zu ändern.
Was im Zusammenhang mit Records auch gut ist, da es so nicht so Code wie diesem kommen kann:
test.Position.X := test.Position.X + 10;
Und man sich dann wundert, warum es nicht mehr funktioniert nachdem man für die Position Eigenschaft einen Getter geschrieben hat
(weil man nun X einer Kopie - Records sind Value types - ändert)