Grundsätzlich erstmal nichts, aber New und Dispose beachten die
RTTI.
z.B. wenn du einen Record in dem "Pointer hat, welcher z.B. "lange" Strings enthält, dann würde Dispose diesen String freigeben, während FreeMem das nicht macht.
Also besser immer nur die zusammengehörigen Funktionen zusammen benutzen.
New = GetMem + Initialize/InitializeRecord
Dispose = Finallize/FinallizeRecord + FreeMem
Tipp: Schau doch einfach mal in deine System.pas rein.