if someone googles something, it shows clearly that he is interested in that topic.
The whole point of that Google link is that the person wasn't necessarily Googling about XLib. They were Googling about Linux OpenGL programming; it just so happened that the first link talked about XLib.

See the difference? Someone who has no idea about what XLib even is having it given to them. So you can't say that the page being high on Google means that people are "interested in" XLib; they're just having it shoved into their faces.

when i look at the bottom of the page,
it seems that it has received more good than bad ratings.
And if the ratings of random users were indicative of quality, this might mean something.

thats completely wrong. even if you program just in plain c, there are some things that you should know, even when
you don't have to deal with them directly.
C has been accused of many things. Being a "good abstraction" is not one of them. But then, that's not C's purpose and it never has been. It's purpose is to be a higher-level assembly, and that necessitates not being a "good abstraction" over assembly. It's leaky by design.

Also, a lot of those things you mention are not something you "need" to know. They're useful, but hardly mandatory for being able to use the language. I certainly don't waste any thought on the memory layout of data structures unless I'm trying to match std140 in OpenGL or a file format or something.

Qt by contrast is a good abstraction over platform-specific windowing systems. You can be a skilled Qt user without having any knowledge of how the underlying platform-specific windowing system works. You can't always ignore platform-specifics, but you can in the vast majority of your code.

on linux, you may get
exactly the same pointer in return
No you don't. You sometimes do if the memory allocator can expand the memory of your allocation in-situ. If there is not enough room to do so in that allocation block, you will get a new pointer.