I never got to fully understand Wayland's model, but if this means that something that previously was handled by the display server for everybody, and now every single desktop environment (or at least something like wlroots) has to solve it over and over again... how isn't this a step back?
Wayland is like X11. Xorg implements the X11 protocol. There are other X11 server implementations — XWin32 is one example on Windows.
Nothing has changed with Wayland except we have a new thing and lots of groups writing compositors. And this is great — Mutter, Kwin, wlroots, Mir — and they will all speak a common protocol for putting stuff on the screen and handing input events. And projects with similar use-cases “desktops” are standardizing on common dbus interfaces for non-display stuff.
This is genuinely so much better than the Xorg monoculture. Wayland’s design has made it possible for lots of different groups to implement display servers and have interoperability because what we had before was “X11 actually means do what Xorg does.”
There’s lots of in-fighting about the scope of Wayland and people that want to make a protocol for putting pixels on the screen also handle “desktop stuff” like audio, screenshots, screen recording, keybindings, input automation, authentication. I think this is misguided because it would effectively turn Wayland into a generic message bus between “apps with windows” and the display server when we already have a generic message bus for every application — dbus.
which after shaking out will be promoted to org.freedesktop.* after standardization. Despite the fact that notifications have been "DE specific" in the same way for years and years nobody seems to complain about org.freedesktop.Notifications.
I agree. On one hand I can understand the need to shrink code, focus on the core functionality etc..., but on the other hand X has e.g. "xset" and "xbindkeys" which can be used for all X-desktops (or "Window Managers" or however they're called). With wayland each single desktop environment has to re-implement all that functionality => looks like wasted effort to me - the modularity (from the point of view of functionality) of X is lost in Wayland.
One of the innovations since the 1980s when X was designed are shared libraries, so you can have libweston and wlroots now https://github.com/swaywm/wlroots
While the first X11 release was in 1987, the fundamental architecture was designed already since 1984, and this architecture includes a heavyweight server that implements things that in most other window systems are done client-side.