Und ja, das ist leider ein "Bug", welcher seit vielen Jahren bekannt ist und es gibt keinerlei Bestreben dieses zu reparieren.
Indize kleiner-gleich 0 werden auf 1 angehoben, ohne daß Count dabei angepaßt wird.
Anscheinend berücksichtigten das die Programmierer des Freepascalcompilers. Zumindest wird ein Copy (ab) der Position 0 klaglos kompiliert. Ob es auch problemlos auf 1 anpaßt / anhebt und damit läuft, kann ich jetzt auf die Schnelle nicht sagen.
Edit: Auch bei Freepascal scheint es egal zu sein, ob man 0 oder 1 für das erste Zeichen in der Copy-Funktion angibt. Wurde der Fehler also dort vermutlich ganz absichtlich hineinprogrammiert, um (hier) maximale Delphi-Kompatibilität zu erhalten?