Having used Solaris (SPARC) I know in that land newly allocated memory frequently contains values very different from 0 which can break *buggy* code that allocates an array of pointers on the heap and assumes they are all initially null. This usually just works on Linux.
Solaris has not monopoly on "your bugware just works most of the time". Some bugware dies badly on Solaris but works on Linux and other systems where freshly allocated memory is all 0 most of the time.
What I really don't like in glibc is implementing a pipe2 function returning ENOSYS, if is not implemented, instead of implementing it using pipe(2) and fcntl(2), No doubt someone would call this is a feature but I can't work up enough enthusiasm for it to do so.