Das ist doch Käse. Erzeuge die Listen ini, Sektionen & Co einmalig vor der Schleife und leere sie, sofern nötig, mit TStringList.Clear innerhalb der for-Schleife.
Muss er nicht. Jeder Aufruf von ReadSections und ReadSection löscht die vorherige, also die alte Liste.