If developers considered the inability to run a 30 year old game/software in the most recent release of "libwhatever" as a critical release blocker bug, then this problem would not exist.
But obviously, this is not a popular solution. And currently we rather have the opposite situation, where open source projects dump compatibility as the default (e.g. Linux sunsetting a.out support), and only preserve compatibility in the comparatively rare case that there is enough developer mass.