Can I add a top-level directory for data dependencies?

AppRun.c sets it up this way, doing a chdir(usr/).

Correct. But you don’t have to use this AppRun, you could also use your own script or even a link to your binary in its place. A safer method would be to find out the absolute path to your main executable, and calculate an absolute path to your data based on that, e.g., using the information from /proc/self/exe.