You get blurry when scaling UP. Xwayland does scale up, from 96 dpi to whatever fractional scale is set, so that's the reason why X apps are blurry. Native wayland app are not.
[0] https://gitlab.freedesktop.org/wayland/wayland-protocols/-/i...
Update:
I can still see open bugs such as https://gitlab.gnome.org/GNOME/mutter/-/issues/1135. Are they outdated?
I can reproduce some of the effects from the second bug when looking at my 4K monitor from an extremely small distance (a few cm). I am not sure if this is really a bug. It looks like antialiased edges that don't perfectly fit the pixel grid. Probably hard to avoid in any scaling scenario. In any case, it is not noticeable at a reasonable viewing distance.
By native scaling I mean absolutely no bitmap scaling. If rendering happened at target scale then all pixels would match grid and no artifacts would be possible. I can't even imagine how ClearType could work with bitmap scaling when it targets individual subpixels.
I think people have wildly different sensitivity to resolution. I know some that can't tell difference between 4k and 1080p and 1080p scaled on 4k screen. Some crazy people even think MacOS has good font rendering.
I don't think it is possible to avoid having lines "in between" pixels when using fractional scaling. The physical pixel grid simply does not always align with the one at "100%" scale.
I specifically bought the 4K monitor to get crisp text rendering. Upscaling from 1080p (e.g. what XWayland does) is very noticeable to me. I don't see any difference between native Wayland fractional scaling, and setting Gnome to native resolution (except for the tiny UI elements).
When I was using X11 I had things set to fractional scaling because there wasn't good support for multiple monitors with different resolutions (and had it set to 1.5, where one monitor should be 2, and another should be 1, so I split the difference.)
Now on wayland, I have things set correctly, where scaling is set to 2 on a single monitor, and is set to 1 on the other monitor (and the application respects this and can be moved between monitors with the expected behaviour).
I also remember something about fractional scaling not being recommended on wayland (I believe it increases the amount of processing needed to be done by a lot.)