A simple vista, ParamStr(0) tiene la ubicacion en donde windows ejecuta el programa. Creo que siempre se lo manda como argumento a todo .exe.
Que en la mayoria de los casos coincida con la ruta de la aplicacion no quiere decir que asi sea siempre

, tu caso es una de las excepciones