You couldn't have picked a worse example. glibc goes to great lengths to maintain backward compatibility. glibc is practically the reason ELF symbol versions exist.
https://www.redhat.com/f/summitfiles/presentation/June2/Deve...
Or as it's generally said, the only software that never changes is software no one uses.
IMHO, the reluctance to "finish" a project and the stigma against something being "in maintenance mode" is responsible for most of the bloat and messes in modern software. Perhaps it's related to "CADT": http://www.jwz.org/doc/cadt.html
It's also, ironically, the cause of numerous security flaws. Maybe we wouldn't have to worry so much about security flaws in our libraries if we weren't constantly tearing them down and remaking them.
Regardless, in the case of libc, I genuinely cannot think of a reason to break binary compatibility, backwards or forward. The POSIX standard is set in stone, the interfaces are stable, the data types are opaque, etc. Of course you can create new implementations of memcpy etc that take advantage of new instruction sets, but I don't see why you need to break binary compatibility to do so.
Well, since you can't think of one, there must not be one.
You're right. Keep in mind, though, that we're living in a world where people ship applications built with dependencies like this:
deps = http://some.random.server.ru/some-library:1.4.4
and installation software like this: curl http://lol.hackme.cn | sudo bash
Do you expect people to really understand the nuances of security updates?