Das sollte machbar sein. Man wird natürlich nicht ohne INI im Standardpfad auskommen, wo dann steht "UseInifromDataPath=True" oder so.
Ohne zusätzliche Datei geht es nicht. Das stimmt schon. Allerdings würde ich es so machen wie viele andere Programme auch:
PortableMode := FileExists('PORTABLE');