Actually, upon looking at some of the CPAN scripts, they use /usr/bin/mpg123 for the mpg123 path, same with lynx and sendmail and etc. And expect /usr/share to be the share directory. So it goes far beyond coreutils/binutils as to the paths of apps. CPAN expects all apps to be installed in /usr. To change TC to prevent changes to CPAN apps would basically abandoning the /usr/local install path we have used since day one. Much easier to use sed on those particular scripts to change the app and share path to make them TC compatible.
I do understand the issue of having duplicate binaries, BB in the system and GNU/other in /usr/local. Perhaps a script to force symlink any base executables to ones in /usr/local if they exist could be put up in programming and scripting, which could be run by bootlocal.sh for those that want only the extensions' version in /usr/local to be used. I still have the tendency to favor not overwriting base by default unless necessary, but I understand the desire to only have one installed version used of each app.
The way CPAN is using hard coded paths makes their stuff need the same tweaking for UNIXs like Solaris where /usr/local is the default GNU install path, if GNU stuff was to be used. Actually, /usr/local is the default GNU install path (using ./configure with no flags) on any Linux/Unix and was one reason we went with /usr/local as our default extension path.
For those that don't already know the scripting but would like to remove duplicate, here is an example script to remove duplicate apps in PATH for a quick and easy workaround:
#!/bin/sh
for I in `ls /usr/local/bin`; do
[ -x /usr/bin/"$I" ] && sudo ln -sf /usr/local/bin/"$I" /usr/bin/"$I";
[ -x /bin/"$I" ] && sudo ln -sf /usr/local/bin/"$I" /bin/"$I";
[ -x /sbin/"$I" ] && sudo ln -sf /usr/local/bin/"$I" /sbin/"$I";
[ -x /usr/sbin/"$I" ] && sudo ln -sf /usr/local/bin/"$I" /usr/sbin/"$I";
done
for I in `ls /usr/local/sbin`; do
[ -x /usr/bin/"$I" ] && sudo ln -sf /usr/local/sbin/"$I" /usr/bin/"$I";
[ -x /bin/"$I" ] && sudo ln -sf /usr/local/sbin/"$I" /bin/"$I";
[ -x /sbin/"$I" ] && sudo ln -sf /usr/local/sbin/"$I" /sbin/"$I";
[ -x /usr/sbin/"$I" ] && sudo ln -sf /usr/local/sbin/"$I" /usr/sbin/"$I";
done