In the base setup, you can't.
The current process uses the kernels context of the user environment - and that is started at the login.
File paths are strictly global. The only "process" reference is the "current working directory".
Now environment variables can be set up... but the process has to know how to use them (most don't). The most frequently used of these is PATH, LD_LIBRARY_PATH, LD_PRELOAD - which are interpreted by a runtime library (PATH), or the process loader (result of exec system call).
What you are asking for is additional complexity in the runtime library - (as in how should it identify when something is redirected and when it isn't).
Symbolic links are global, not process specific. Plan 9 has some of this - but it is still very heavy handed about it (bind mounts are part, but bind mounts are also global unless you have created/activated namespaces for a process...)