Uhm, there's just one (extensible) X protocol, which for communication purposes offers some "primitives" (events/messages are builtin for the most basic stuff, but can be synthesized by any client, general-purpose selections with owners and "window properties" are offered, X design philosophy was "mechanism over policy" after all), so most of the protocols you're probably talking about are those specified on top of these primitives (like in ICCCM and EWMH, but also additional ones).
These protocols, when used correctly, work well for all the common interoperability stuff you'd want on a desktop regarding applications that aren't "part" of that desktop -- unless of course your goal is to eliminate the X server.
I already said that I think d-bus conceptually makes sense for tightly integrated desktop environments. It's certainly better than every desktop coming up with its own solution, and a somewhat complex desktop environment certainly has a need for something like that.
But it annoys me that protocols based on d-bus now also attempt to replace well-working protocols based on X11. I don't want to have dependencies on d-bus in every random application. Case in point, for the x11/xmoji utility I'm currently building (which only makes sense on X11 anyways, not on wayland), I plan to add an optional "tray icon". There's an old protocol supporting that based on the XEmbed protocol, and a newer one utilizing d-bus. With the old one, you can simply have a regular X window for your icon and e.g. use XRender on it. I'll only implement that one, although the large desktops nowadays use d-bus "natively". At least KDE offers compatibility through some proxy service, so I don't see why I should pull in even more dependencies just for such a simple and optional thing ... if a desktop only supports the d-bus variant, well then, no icon there.
Wayland-based window managers and DEs can't run without it. Xorg is now in maintenance mode, and we all know its issues: screen tearing, flickering, etc. People have fought ideological flame wars over Xorg vs. Wayland for too long. Aside from a few OpenBSD devs, nobody cares about improving or maintaining Xorg. Frankly, I'm sick of all the talk with no code. Xorg is a massive project, and a few unpaid people can’t keep it alive. And I’m not interested in hearing a long-winded debate about UNIX philosophy—people argue about what it even means.
Too much time’s been wasted already on design philosophy debates. For me, UNIX philosophy is a guideline for building software in uncertain conditions. Simple systems are easier to debug and fix. But it's just a guideline, not a rule. The rest? I prefer to speak through code.