I have observed that under OS X 10.6 (at least), libraries loaded with Tcl's load are not visible from other libraries, also loaded with load.
Thus if you load a library A, and then load a library B that depends on A, library B is not loaded if A does not resides on a directory the dynamic linker searches for libraries. It is not recognised that library A is already loaded in the process.
This seems OS X specific, as I cannot reproduce at least under windows & linux.
I know that load calls dlopen(..., RTLD_GLOBAL); which does not seem to do as advertised.
I had to call NSAddImage(NSADDIMAGE_OPTION_RETURN_ON_ERROR |
NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME ), after I loaded lib A, to be able to load lib B.
However, NSAddImage is already deprecated in 10.6.
The relevant thread is here: