Also -- lest we make any incorrect assumptions about the display names -- some code on Mac OS X sets the $DISPLAY string for the local display to the full path to a unix-domain socket, the name of which just happens to end with ":0". I suspect it's a launchd thing, where connecting triggers launchd to start up the X server and pass data through. But, an X11-configured Emacs on Mac OS X, run from a Terminal window, may have to deal with it, so we can't assume it's a host name.
I'm not sure the different transport matters much, so long as when the user asks us to connect to the local server, we connect to the local server. But I don't want to rehash that discussion here, and it doesn't help me much if using two different displays will trigger the same problem.