Hola.
Si, es así roman.
En realidad Tubo Pascal sólo definía el tipo de datos string, que como bién decis tenía un tamaño fijo de 256 bytes. Donde en la posición 0 del arreglo de caracteres se guardaba la longitud de la cadena almacenada. Es por eso que se podía utilzar Ord(s[0]) en lugar de la función Length.
El tipo ShortString es un nombre dado ya por Delphi al antiguo string de Pascal para diferenciarlo del AnsiString que trata las cadenas al modo
del lenguaje C.
De ahí que Delphi no pueda
determinar a que tipo nos referimos y por lo tanto su longitud, como sucede en el caso de arriba. A no ser, claro, que se le indique al compilador como debe interpretarlas con una directiva.
Saludos.