A library has no way of knowing what is in your sketch. The two things are completely separate and there is no way to bridge that gap.
You can't include library A into the sketch and expect library B to know about it. Library B has to explicitly have library A included in it for library B to even have a clue what library A is.
There are two important parts to including a library. Not only does it tell the translation unit that you include it in what the library has in it, but it also tells the IDE that you want to use that library and to compile the source code for it.
You see, a library usually contains two distinct things - a header file (or a number of header files) and source code files. The header file describes the library - what classes it has, any exported functions or variables, etc. The source code implements the library. When you include a library it just inserts that definition of the library (the header file) into your source code at the point of the
#include. Just like a copy-and-paste.
The IDE does a little extra magic and associates that header file with a directory which has other files in it. It then finds the source code files in that location and compiles them.
Every file that gets compiled gets compiled separately. This is called a translation unit (TU) and each one is completely separate from all the others. None can know what any other file has in it, unless you explicitly tell that file to find something from somewhere else (though you don't tell it where, only that it "exists somewhere else"). And that is what the header files do - they tell the translation units what things are available elsewhere.
So if TU A needs resource F it needs to be told. If TU B needs resource F it also needs to be told.
And because of the IDE's extra magic your main sketch has to also be told about every library in use - whether that library is directly used by the sketch or not - so that it knows to go and find and compile the source code for that library.