With RTLD we've successfully unified it into a single binary that switches implementation of various parts at run time, and with libunwind we've managed to do the same from the start thanks to carefully-designed APIs and stubs. It would be good to do the same for libsys, libc and libthr.