Um das was mkinzler sagte etwas plumper auszudrücken, Pascal ist von Hause aus keine
OOP Sprache. s und i sind normale variablen, eben String und Integer, also können sie einfach deklariert werden. Objekte wie liste sind dagegen ein kleines Problem. Entweder bleibt es Pascal oder man erfindet einen neue Sprache. So wie es ist, ist es eigentlich noch fast Pascal (wurde ich sagen). liste ist nur eine Adresse auf das Objekt, letztendlich ein Integer. Somit wird keine Regel verletzt. Und später in Code wird das Objekt erstellt.
Zugegeben, doppelt gemoppelt, aber als Pascal erfunden wurde, da hat man
OOP vergessen. Das kam erst später dazu. Also hat man ein Kompromiss gefunden.