The Linux kernel very occasionally removes interfaces, but generally only via "this turns out to have been broken for years and nobody has been using it".
glibc does deprecate and remove things, but it uses very careful symbol versioning, such that code compiled against previous versions of glibc continues to run but new code can't use those interfaces. It's a rare example of being ABI-compatible but not API-compatible.