msmshazan
X11 or xcb?
I think this means "Xlib vs XCB" ? or are you meaning implementing X11 Directly (handmade style/ from scratch)
XLib and XCB are both libraries that implement X11 clients.
Distributions are pushing Wayland lately, which many believe will replace X11, But Wayland has a backward compatible layer for X11 support.
I would use XCB on Linux, actually, I would probably use SDL on Linux. It depends.
XCB is a newer than Xlib with a focus on being asynchronous.
Also, for Audio, It seems the standard for desktop GNU/Linux distributions to use Pulse Audio, or if you are embedded (non desktop) use ALSA. If you use SDL, then it will try auto-detect what the right thing to do is. (use Pulse Audio if its there, then ALSA, then OSS)
Also as a side note, if you just want to interface with the kernel directly, and not go though the X Server at all, you can use the KMS/DRI APIs, this is best for embedded applications or single purpose machines, because only one application can have that level of access at a time.
There are so many APIs because there are so many different use cases. Not all of them do the same.
Also, for GUI toolkits, I highly recommend just implementing Nuklear or Dear IMgui over OpenGL, its a little bit of work to get started, but a solution like that has a lot less baggage than using GTK or QT.