Technically, X is also just a protocol. But there was just one main implementation of the server (X.org), and just a couple implementations of the client library (xlib and xcb).
There isn't any technical reason we couldn't have a single standardized library, at the abstraction level of wlroots.
There isn't any technical reason we couldn't have a single standardized library, at the abstraction level of wlroots.