Das dürfte historisch bedingt sein. Bis Delphi 4 gab es gar keine richtigen Unsigned Integer mit 32 Bit. Aber auch schon in 16 Bit Pascal waren es Signed Integers. Somit konnten Funktionen wie Pos/IndexOf usw. -1 als Ergebnis zurück liefern, wenn ein Element/Zeichen nicht in einem Array/String vorhanden war. Auch kann man so leichter Fehler in der Index-Berechnung erkennen.
Sicherlich liegt es aber auch daran, dass das das native Verhalten der x86-Prozessoren ist.
...
...