Now, you brought up the X backend. The X backend, unless im mistaken, is XWayland. XWayland is so that if you have an application that was specifically written for X (Not done in a modern version of GTK or Qt) that they can still run under Wayland. Wayland will spawn a special X server that is the exact size of their window. X thinks its in charge but when it goes to display the contents of the screen, its actually pushing them to a Wayland buffer and then Wayland handles where, when, and how to display the contents.
I think what renox was trying to clarify is that the X11 backend in Weston (x11-backend.so) is not XWayland, it's the backend that allows Weston to run inside an X environment. So, if you run Weston inside a running X environment, you get a window that pop up with Weston running inside it. This weston communicates with the running X server and sends its buffer updates to X. This is useful for running Weston when your hardware doesn't support the DRM backend.
XWayland is not a backend per se, ie. you don't run Weston "on" this backend. Instead, as you say, this module listens for applications launched in Weston that try to connect to an X server, and if they do (if it's an old program written specifically for X), then Weston launches an X server, and takes the buffer that the application sends to this spawned X server and displays it as any other application running under Weston.