TMemoryStream ist ein Objekt und diese werden nie automatisch "entsorgt".
(wenn du dir also auf dem MemoryStream ein Interface machst, dann ginge es)
Es ist praktisch so ... alles was man erstellt sollte man auch wieder freigeben.
Strings (
Ansi/Wide/
Unicode), DynArrays und Interfaces werden von Delphi automatisch initialisiert und auch wieder automatisch freigegeben (wenn man dieses nicht explizit umgeht ... z.B. via GetMem und FreeMem, in Verbindung mit Records, aber dafür gibt es ja auch New und Dispose).