To answer the general point first:
>I don't know how much touch screen only computers are considered during development of desktop environments and display servers
Phosh, Plasma Mobile and SXMO are DEs for phones and tablets, so they support touch fine. I run Phosh (also on pmOS) on my phone and have none of the problems you described. GNOME is also making its own GNOME Mobile.
---
Now, for your specific hardware: I don't know how old your "old surface tablet" is, but I run postmarketOS on the very first Surface RT and it works fine. It uses the kernel from [1] and requires a one-time semi-complicated procedure to bypass Secure Boot and switch away from Windows [2], and even then it has some issues with CPU scaling etc not supported. So I won't recommend it as a general-purpose Linux tablet, but it's good enough for what I use it for.
>On screen keyboard was completely broken with Wayland
It's a Tegra 3 chipset so I don't run a wayland compositor on it (it would need CPU rendering), just Xorg with i3. I haven't tried an OSK inside i3, but the OSK at boot time to enter the disk encryption password (unl0kr) works fine.
If you do run wayland, wayland-native programs should be able to auto-launch the OSK because they will invoke the input-method protocol, and xwayland programs probably won't. This is the behavior I see on my phone running Phosh - firefox and foot (terminal) showing wayland windows trigger the OSK (squeekboard), whereas chromium using xwayland does not. But even then, chromium does respond to the OSK input when I manually trigger the OSK.
>X had trouble with screen rotation.
The grate kernel supports reading the tablet's accelerometer sensor, so I just wrote a script to listen to iio-sensor-proxy signals and run `xrandr` to rotate the screen accordingly.
[1] https://github.com/grate-driver/linux
[2] https://openrt.gitbook.io/open-surfacert/common/boot-sequenc...