In general, the development mainline of the repositories should be for currently useful code; having a version control system means you have history of removed code available should it become useful in future.
Changes in the environments in which glibc is used may mean code ceases to be useful (for example, if it is only relevant with old compilers that can no longer be used to build glibc). In general such no-longer-useful code should be removed.
If there are concerns that such code may in fact still be in use, or is likely to be of use again in the near future, the code may be listed as deprecated here. This should be considered a last call for a maintainer; in the absence of concrete uses for the code, it is likely to be removed in the release cycle indicated (but not guaranteed to be removed; the maintainers will consider the issue again at the time).
The following are currently being considered for removal after the release of glibc 2.16:
* Support for bounded pointers (GCC support removed in 2002). See http://sourceware.org/ml/libc-alpha/2012-01/msg00003.html and http://sourceware.org/ml/libc-alpha/2012-01/msg00137.html and bug 13550.