When autologin is enabled, you change to the console and do a telinit 3, the runlevel is changed but X keeps running. You have to manually do a killall X.
Since autologin doesn't own the X process (it exec()s startx), there's nothing we can do about it.