Network transparency is actually not the problem: pretty much all inter-process communication uses local UNIX sockets and shared memory, which is ... exactly what X uses! Shocked.
A lot of the problems with X are related to round trips: many events that X sends to clients are actually just prompts for clients to send another request, block, and wait for a reply actually containing the information you need. In turn, those requests will probably get stuck behind rendering requests from other clients, adding huge amounts of latency. Also, many operations look something like this: request from client A -> event sent to client B -> request sent from client B -> reply sent to client B -> request sent from client B -> client A's original request fulfilled. So, by the time you've scheduled ten times, a perceptible amount of time has actually passed.
tl;dr: It doesn't.
# Quickstart for those that do not use jhbuild:
export PREFIX=/opt/xorg
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
export PATH=$PREFIX/bin:$PATH
export ACLOCAL="aclocal -I $PREFIX/share/aclocal"
git clone git://anongit.freedesktop.org/git/xorg/util/modular/ util/modular
echo "util/macros" > built.modules
./util/modular/build.sh --clone -p -f built.modules -r `tail -n 1 built.modules` $PREFIX
# Re-run the last command until a build succeeds.
For your convenience we collected some links to X related informations on OtherFAQs.