Bei TFileStream kann nichts verloren gehen, selbst wenn man vergisst das Streamobjekt freizugeben.
Es wurden ja bereits alle Schreibvorgänge ausgeführt und warten vielleicht noch im WindowsFileCache, bis es auf der Platte landet.
Spätestens wenn das Programm dann beendet wird, schließt Windows das FileHandle und die Datei ist entgültig zu
Und so lange nicht das komplette Windows abstürzt, wird auch irgendwann das noch auf die Platte geschrieben, was noch im FileCache hing.
Beim TBufferedFileStream ist es wie mit dem guten alten
AssignFile+Rewrite auf einer
Text/TextFile, wenn dort das CloseFile fehlt oder das Programm abstürzt, dann sind die Daten weg, welche noch im Buffer des Delphi (TTextRec.Buffer) warteten.