I like the see if @nickm, @EL84 and other user can vote with me on this bug report:
It were removed from 4.x version. This were a key feature for my person library to stay lean simple without a set of environment pre-define required. It also allow me to switch between personal libraries quick without change the environment variables and restart KiCad. It also allow my colleague to checkout my library and only need the link it in his/her library configuration - instead of make sure he/she have to have the same environment variables as mine, and make sure the location of checkout have to be specific location on the locale machine.
I use relative path for 3D Model files in footprints, and locale pdf datasheets or erra documents for symbols.
I do not use relative links as you do, so I’m not affected. However, I went through the bug report to understand the issue.
I can empathize with the developers’ view that relative paths raise the question “relative to what” to which different users might have different answers or expectations. That is problematic.
Since specifying paths relative to an environment variable is a good mechanism, and is existing and is supported, would it help, if you were asked to re-write all those relative references (e.g "../doc/xyz.pdf") to a relative path form such as "${KICURRLIBDIR}/doc/xyz.pdf" ?
If that re-formulation is acceptable to you, then you may consider trying to persuade the developers to support a new environment variable ${KICURRLIBDIR} which will be an automatic environment variable which, by definition and intent, always refers to the directory in which the current library lives.
The current library is the library during the processing of which the path in question is encountered for path expansion. Defining it so will make it unambiguous.
This would be very similar to the ${KIPRJMOD} which is another automatic environment variable (that always refers to the current project directory). So no new mechanisms would be required and no confusion would result.
That is just a suggestion from me on how such a feature might be better handled. Hope that’s useful.