Bei dynamischen Arrays gibt es garkein Copy on Write.
Dort wäre eine Art Äquivalent zum UniqueString das Copy.
Delphi-Quellcode:
var
A, B: array ob Integer;
SetLength(A, 1);
A[0] := 123;
A := Copy(B); // A := B;
B := A;
B[0] := 456;
ShowMessage(IntToStr(A[0]); // 123 und ohne Copy ist es auch 456