That's not simple at all. If I want to integrate properly with your desktop, do I write my code against gnome or KDE?
If I statically link against an older (or newer) version of gnome or KDE, will it even interoperate correctly with whatever the user has running on their desktop?
If there's a security vulnerability in what should be a base system library, does every single vendor have to track those issues and release updates to their applications?
No. The right way to support binary compatibility is to define a compatible, stable API and ABI and then support that ABI/API across OS releases and updates.