Das sollte im Prinzip sicher sein. Du musst nur aufpassen, dass du "array of ..." nicht bei Parametern verwendest, denn diese Arrays haben ein anderes Format, was zu Fehlern führen wird.
Delphi-Quellcode:
type
TRecordArray = array of TRecord;
procedure DoSomething(Foo: array of TRecord);
var
Bar: TRecordArray;
begin
// Das NICHT tun
Bar := TRecordArray(Foo);
SetLength(Bar, 42);
end;