Hola Juan,
1. Lo de MODE CONSOLE Y R+ no creo que sea muy recomendable. Quizás sería mejor empezar con algo como ...
PROGRAM TEST;
{$MODE OBJFPC}{$H+}{J-}{R+}
{$APPTYPE CONSOLE}
USES
{$IFDEF UNIX}
CTHREADS,
{$ENDIF}
CLASSES, SYSUTILS ;
...
2. Usar "string" está bien para hacer pruebas rápidas, pero no es muy aconsejable. De hecho "string" no es un tipo. Según qué plataforma uses, a qué plataformas vayas s compilar y que directivas de compilación tengas o no tengas, "string" significará cosas diferentes, algunas de ellas con resultados inesperados y sorprendentes.
String es sólo un alias. Mejor usar tipos unequívocos (ShortString, AnsiString, WideString o UnicodeString).
Como no has indicado ningún modo de compatibilidad ni has especificado ninguna directiva de compilación referente al uso de "cadenas", el compilador ha decidido por si mismo ponerse en {$MODE FPC} donde una "string" es realmente un tipo "ShortString" con un límite de 255. Podrás juguetear sin recibir errores (o no) mientras no intentes acceder una posición mayor de 254.