Ich kann nur mutmaßen, aber ich vermute, das ist historisch bedingt. Das stammt vermutlich aus der Zeit, wo es noch keine dynamischen Arrays in Delphi gab und Strings noch ganz was besonderes waren. Bei Strings spielt sich ja nach wie vor hinter den Kulissen eine Menge Compiler-Magic ab, sodass man argumentieren könnte, dass Strings eher ein Sprachfeature als ein Datentyp sind.
Das hört sich wahrlich sehr plausibel an!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)