Historically, the C library on Linux has provided the low-level system call interface, the POSIX functions (which wrap the system calls for the most part) and the standard C functions. Why do we need all these disparate parts in a single library?
Could the system call interface be wrapped and placed in a completely separate library, e.g. libsystem, which the POSIX and/or C libraries could then use?
If there was ever a library which could use some simplification, it's glibc. Its build system is impenetrable and its sources often incomprehensible (to a newcomer).