I followed the trail of calls you outlined -- X is called nowhere. In /usr/share/kde4/config/kdm/kdmrc is a line like "ServerCmd=/usr/bin/X" and "ServerArgsLocal=-nolisten tcp". I'd reason from here, that
some piece of software issues these values as a command and its arguments ... but where does it happen? kdm is an executable, so does it take both as arguments?
<edit> I also remember, that if you call "startx" from the command line you have to parameterize it heavily like "startx -- :2"; beware of the right number of dashes and blanks
. How is that done from the bash.bashrc? </edit>