Recs.
Updated
SpecsUpdate
Pros
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 Will be available at least another 10 years
It is the de-facto *nix display server. If you create a Software that runs under X11 it will also work on BSD, Solaris etc.
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.
Cons
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.