Hii! trans girl here who messed with libwayland and x11 a bit before. Wayland has the compositor and server combined so there's less overhead.
Here's the X11 architecture.

Let's say you pressed the fullscreen button with your mouse:
- First the evdev driver will get your mouse input and send to X server.
- X server tells the X client that someone just clicked so-and-so coordinates. X server HAS to assume which client because windows may be on top of each other, and only compositor (our renderer) calculates those. Often server assumes wrong tho so has to try everyone one by one.
- The X client re-arranges everything after fullscreen, sends X server what changed.
- X server calculates which area the change was in, sends to compositor asking they render that area again.
- Compositor calculates that all windows fall behind the fullscreen window, renders the one on top, sends X server what changed.
- X server does the graphics displaying part from there.
Now here's Wayland architecture

- You press fullscreen with mouse, evdev sends it to Wayland compositor
- Compositor knows what windows are where, knows which client was clicked. Sends it to them.
- Client realizes they are being fullscreened, they reareange AND render their own changes themselves too. Client also directly writes to a shared buffer they have with the compositor to not waste time sending their render results.
- Compositor already has the changes in shared buffers, recomposes the screen based on all the clients' new rendering.
So now some redundant steps are gone, and also the shared buffer is nice too. Overall, wayland uses less resources for more work.
Technical writing if you'd rather read that. Also source of the images too. Hope this helps! (Sorry for my poor English if I made any mistakes)
https://wayland.freedesktop.org/architecture.html
Note: In defense of x11, I heard someone on lemmy mention it has more accessibility features supported currently.