X11 was introduced in 1986 and was not backwards compatible with X10.
So, it has happened in the (very distant) past, but not as you may think it did.
It's not possible to achieve what Wayland strives to achieve and keep X any more than Wayland does, unless you're satisfied with simply calling the Wayland protocol "X12" and be done with it.
There are two main problems.
First, there are problems in the X11 server/client protocol that can only be fixed by creating a new major extension, where a client connects and says "I'm a X12 client and I swear I won't ever speak X11 to you", and the X12 protocol would look awfully like Wayland.
Second, there are problems with the X11 model of display server (X.org), window manager/compositor (Mutter (GnomeShell), Compiz (Unity), Kwin, Enlightenment etc, etc ) and clients.
Wayland fixes those problems by merging the role of the display server and of the compositor are merged into the same piece of software, the Wayland compositor.
That has a number of advantages (better performance, the compositor has full control over the input the clients get) but it's only feasible because, due to the simplicity of the Wayland protocol, writing a Wayland compositor can be not much harder than writing a X compositor.
This is not feasible if we were to try and write compositors which also act as an X11 server, due to the sheer size and complexity imposed by the X11 protocol (core + modern extensions).
The Wayland architecture is much cleaner and much more feasible.
We'll have several Wayland compositors (Mutter, KWin, Enlightenment, etc), which are only burdened with speaking the Wayland protocol to Wayland clients.
And a modified X.org rootless X server (Xwayland), which is also a Wayland client, will support X11 applications (as good or better than before).