Except libpng has been nearly always backwards compatible. The only exception was the move to 1.5 when they decided to get rid of direct access to the structures (which had been deprecated long ago), and that was just so they were free to break the internal ABI (any program using only the functions was 100% safe and may even work with the old libraries if forced to link with them).
There are indeed some libraries that break the ABI every release though...