Normale Delphi-Strings (also AnsiString/UnicodeString) haben eine 0 hintendran, damit der PChar-Cast ohne Speicherallozierung etc. funktioniert.
Wenn du willst, kannst du das natürlich mit irgendwelcher Low-level-Bitschubserei hinter Delphis Rücken torpedieren.
Aber bei String-Verkettung und so bleibt die 0-Terminierung erhalten.