Thing I understood/assumed is that textures always go in a subfolder along side of the file using it's location, no matter if it's the library or some user location.
This way same named parts or variants of parts still use the correct textures due to normal search order. So after a file has been found any textures in it will be loaded from "<ldraw File Location>/textures". If they are not there no further searching will be tried (since that has been done in order to find the ldr/dat already).
All this goes recursively of course, so a referenced s\bla.dat will use textures from that file's location + "\s\textures".
This way same named parts or variants of parts still use the correct textures due to normal search order. So after a file has been found any textures in it will be loaded from "<ldraw File Location>/textures". If they are not there no further searching will be tried (since that has been done in order to find the ldr/dat already).
All this goes recursively of course, so a referenced s\bla.dat will use textures from that file's location + "\s\textures".