Ranked in these QuestionsQuestion Ranking
Pro It's the de-facto display server for the Linux world
X11 is so tied up with everything in the Linux Kernel and userspace that it's become for a long time now the de-facto display server for Linux. A lot of things have been tied to X for decades now and it's hard to untie even if X has a lot of glaring problems. Because of this (and despite of X's problems), everything seems to work with X, from the WMs to the graphic drivers.
Pro Network aware
You can send windows to other computers or you can have multiple screens with remote logins and other things like that through X.
Pro Gives you a certain degree of freedom to do what you want
When using X, you can get information on any application that is running within any other application that is currently running. Things like position, size, framebuffer, which window has focus, etc. can all be accessed by any running application.
With this in mind, there are countless customizations that can be achieved, things like changing the keyboard layout depending on the window that's focused, or creating a script that gets statistics for each key typed. The possibilities are endless.
Con Very complex codebase which is hard to maintain
The X stack is rather old and a lot of the things that have been added through the years feel more like hacks to make it work with newer technologies. This has made the X stack feel all over the place with bits and bobs everywhere. Making it a pain to maintain the stack in the long run.
Con Vulnerable to Keyloggers
Because of the ability for applications to get information between them, X is extremely vulnerable to keyloggers.