I hear that VNC is ineffective and many Wayland compositors implement only this approach. I do not know Wayland internals well, so be polite :-( .
I do not known if wayland have already protocol for deal, which part of window were updated om last frame. If does, could Wayland allow to receive this information by screenrecorder/ desktop sharing app? It could made thinks like in RDP possible for screen/ desktop sharing on Linux. I think there is no need to implement this in each application - only toolkit will be involved. If app do not use toolkit, it were forced to implement this by itself or desktop sharing app would update whole window on client side on each frame (fallback). Wayland would only look if app send information about part, which was updated, on last frame. If not - it inform, that whole window was updated. But if app send info, it bypass it. After bypassing this information, wayland will clear buffer of updated regions for each window. Best regards, Sławomir Lach.