Du könntest auch den constructor überladen, dann ist wenigstens eindeutig, dass du ein neues Objekt zurückbekommst, dass du wieder freigeben musst.
Wenn du einen Parameter nicht mehr brauchst, wäre ich aber eher dafür du schreibst die Vektor-Klasse um und änderst die add-Funktion hinzu so, dass sie sich selbst modifiziert, statt eine geänderte Kopie von sich selbst.
Delphi-Quellcode:
procedure Vector.add(other: Vector);
begin
x :=x+ other.x;
y :=y+ other.y;
end;
Wenn du dann mal wirklich eine Kopie brauchst und den Parameter behalöten willst, dann klone das Objekt eben vorher.
Diese Lösung ist nicht nur übersichtlicher, sondern sollte auch performancetechnisch vorne liegen.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!