Wayland is also a "client-server" model. If you use DRI3, X11 and Wayland even do the exact same thing "under the hood". Only the sub msec negotiation phase is slightly more complicated on X11. We are talking about very cold code paths here.
Wayland not only has forced vertical sync it also requires every application to be double buffered. This can be detrimental for some performance metrics. That is why Wayland has worse performance despite being "simpler".