X11's problems were rooted in the abstractions presented by the X11 core protocol and its extension mechanisms. The interface, not merely the implementation.
Wayland was correct in first focusing on replacing this interface. The problem is the effort stopped there and left the ecosystem to figure out the implementation part.
Don't take it from me, Daniel Stone has a whole talk on the motivation for Wayland: https://youtu.be/RIctzAQOe44
Broadly, the X Server has a bunch of capabilities which are irrelevant. The modern model is really Window <-> Compositor based, and the X Server protocol is just a pointless middle man in that exchange.
Sorry, I know this nonsense from Daniel Stone I am interested why you believe it.
"compatibilities which are irrelevant" do exist, such as old drawing primitives but those are not really an issue. They can be maintained for backwards compatibility and eventually deprecated and removed, but they are not anything which holds back modern clients. The X server protocol is not anymore a "pointless middle man in that exchange" than the Wayland protocol is a "pointless middle man". A protocol is obviously needed so can not be pointless.
I believe it for the reasons explained by Daniel Stone, there is no difference between my opinion and his on the topic of X's inefficiency as an IPC middleman.
X11's problems were rooted in the abstractions presented by the X11 core protocol and its extension mechanisms. The interface, not merely the implementation.
Wayland was correct in first focusing on replacing this interface. The problem is the effort stopped there and left the ecosystem to figure out the implementation part.