Zitat:
dass jede einzelne Verwendung von Generics die Exe-Datei immer weiter aufgebläht hat (siehe auch hier), habe ich dann doch grundsätzlich darauf verzichtet.

Kann ich nicht nachvollziehen. Klar muß die Funktionalität auch implementiert werden...
An meinem Beispiel (Berlin):
EXE ohne Inhalt, incl. Ressource: 12,3MB (12.977.908 Bytes) - 2505KB Verbrauch
EXE mit Inhalt, incl. Ressource, TDictionary und alle Units Generics und dem Einlesen der Textdatei: 12,3MB (12.978.468 Bytes) - 6400KB Verbrauch
...in Zeiten wo Plattenplatz keine Mangelware ist, würde ich den Overhead für die Features in Kauf nehmen.

Diese Minimalisierung der Programme hat zu DOS Zeiten noch Sinn gemacht. Jedes aktuelle Mobiltelefon hat mehr Rechenleistung als die Kapsel die auf dem Mond gelandet ist.
Zitat:
Zur Laufzeit sollte auch TDictionary nicht schneller als In-Code-Abfrage sein (die Resource-Datei muss ja auch erstmal verarbeitet werden).
Was erwartest du denn zeitlich?

Wenn die "Zeilen" verarbeitet werden, im Vergleich zur TStringList, ist der Unterschied nicht dramatisch. Dann aber ist der Unterschied in dem Lesen / Heraussuchen des Keys deutlich meßbar.