But even that's a relatively high bar. Wl-roots is self-described as "60000 lines of code you don't have to write yourself", and any arbitrary compositor may not use it or may not be up-to-date with it. In X11, you don't need 60,000 lines of code to be functional. Hell, the example Window Manager that was printed as a couple of chapters in the old X11R5 reference books works well enough especially considering its size.
I feel like I missed the historic genesis of this particular quagmire. Knowing that a composer was essential, you'd expect developers would want to make very robust core functionality-- a super-rich libweston or something like wl-roots, so that "real" compositors would just be paper-thin extensions that answered the opinionated parts. Did early Wayland design get bogged down on embedded-style use cases where such features were seen as too expensive (compare: no built-in printf in C), or was it a deliberate territory grab by early compositor developers, trying to turn it into a place they could to gain competitive advantage?