Earlier quoted context omitted.
they both break library compatibility and break their environment (like when kde removed the widget toolbar and a whole lot of app suddenly stopped working) sure you can have bunch of ifdef in the code, and an autoconf, and make sure you support a wide set of options, but that is basically the whole point, it makes for a painful experience and costlier, slower development (for closed source application that comes pre…
I feel like you do not understand the concept of static linking, because the entire point is that you don't need a bunch of ifdefs, since you target exactly the version you develop against and ship with it.
or just go get some old static compiled stuff run on your modern distro and see yourself. like, mindrover the europa project port.