A fair statement, but a stable ABI is only needed when you don't have the source. Seeing as most of the value proposition of Linux is that having the source is good, I find no fault in an unstable ABI.
Source available is of little use for many of the current breed of languages and libraries. Even standard C support is starting to break down as incompatible "standard" newC is being pushed because some C++ guy didn't like K&R function definitions.
Linux's remarkably stable kernel ABI is the only reason we can still use a lot of unbuildable dependency hell stuff on Docker containers.
OpenBSD is sort of the poster child here, They notoriously do not have a stable ABI, I would not want to try and ship closed source software on obsd, it would be an absolute nightmare. But their API is very stable (insert counterexample of the recent pledge change here)
An interesting side effect of obsd changing their ABI fairly often is they are good at it(add comment about this is because it is a small self contained system with few users here), in Linux land an ABI change is a nasty, messy, multi year process with much wailing and gnashing of teeth, for obsd, it just happens. To misquote Raul Julia in Streetfighter "For you, the day the ABI changed was the most important day of your life. But for me, it was Tuesday.
It's the compiler too. I recently found out that kernel 6.6 can't be compiled by gcc 15. So, even if you have the source, unless it's extremely simple, at some point the current toolchain will refuse to build it.