The only way to avoid dependencies is compile them together as one monster program. Then you are open to the zlib bug again and have to update multiple programs. Whereas a dynamic link to the library means one thing to update not many (including those that few people know about).
This comes back to the benefits of code reuse. Often these new packages require new routines and it is the case that old programs break because of lack of backwards compatibility (either due to change in new libraries or original code).
If you rely on a major distro, just wait for the next release especially if it is a major upgrade such as KDE 1 to 2 to 3 etc.