You bring up an important issue. It is normally incorrect to pack dependent libs into extensions in the normal path as that just causes library conflict when another extension that contains that lib is updated. With TC's modular approach listing the extension that contains the dependent lib as a dependency is how we do it. There are exceptions though, when two packages can be combined when they are dependent on one another and are almost never used seperately. But there is one way to include extra libs into an extension and that is by making the extension self contained, with the dependent lib installed outside of the library path.
Mpg123 has it's libs installed into /usr/local/mpg123/lib, so other apps will not see that libtool file. An upgrade of libtool will not cause conflict as the lib that is in mpg123 cannot be used by other apps unless they are invoked by setting /usr/local/mpg123/lib as the primary library path. I used this same approach with audacity as it needed a version of wxgtk that would not be able to be used with other apps do to configure flags as well as it needed to be an older version. This is basically how DSL .uci extensions were made and it is valuable when the modular approach cannot be used.
As for the libtool extension, Debian has it split up between libtool (the /usr/local/bin files basically), libtool-dev (the dev files) and libtdl3 which would be /usr/local/lib/{libltdl.so,libltsl.so.7,libltdl.so.7.2.0}. My vote would be that libtool be split between the three shared lib files in /usr/local/lib (calling it libtool or libltdl), and call the rest libtool-dev. That would help from having to create self contained extensions that need the shared libltdl file.