xdm heresy is that I don't like it and don't use it and never have
(at least not on my main machines, the ones
that run my full environment). This has nothing to do with
(I don't like any of the
xdm alternatives either) and everything to do
with how much of a hack the xdm model of 'logging in' is.
Unix has long had a well defined model of how you log in and establish
your environment, where the shell that was directly started by
sshd and so on) was a special 'login shell' that did
additional initialization. Unfortunately, Unix tied together two
separate ideas in the process of doing this, partly out of necessity in
the early days: non-interactive things that you wanted to do once to set
up your environment, and interactive things that you wanted to do when
you logged in (in the old days, this could include environment setup
things such as asking you what sort of serial terminal you were using
and initializing it).
This is a bad fit for what xdm wants to do, to put it one way; xdm is
effectively a non-interactive login. Xdm isn't the first program to
run into this issue; the wheels started coming off the classic Unix
login model the moment
rsh introduced the ability to run commands on a
machine without actually logging in.
What xdm should have done is try to solve the problem once and for all, ideally by introducing the idea of a non-interactive 'login' shell that merely initialized the environment and then ran more commands for you. Failing that, it should have introduced a standard for 'this is how xdm will invoke something to set up your login environment'. Instead it simply ignored the problem. (Given that rsh had also ducked addressing the problem, xdm was following a well-blazed path.)
Ignoring the problem was and is a hack. It works (and worked) sometimes but not always, and of course it created a whole series of workarounds with their own new set of issues. The centrality of this hack and the resulting uncertainty in how xdm works (or doesn't work, depending on local factors) irritates me. As a result I prefer to get around the whole issue by logging in on the text console and then starting X by hand, and I've done it this way for a very long time.
(Starting X by hand may be difficult, but at least I don't feel like my entire environment is built on changeable quicksand. Also, it makes me grumpy to hack my own environment up to cope with the fallout from xdm's bad hack.)
(For an example of the sort of problems that this xdm hack and attempts to work around it cause, see for example this.)