If :0
ever was a valid display, the process, i.e. xserver providing it, would be owned by root. Whatever you mean by valid.
If you want to know if you can connect to an xserver, I'd suggest to use xlsclients
to connect to that display. If the command can connect it will return 0, if it can't it will return 1.
X does not work in a manner that one user connects once to one xserver. To tie users to xsessions you must look at the programs connected to the xserver. Windowmanagers are good candidates for that, b/c there can be only one (active) windowmanager at any time. You can also track process relationships (parent,child) starting from your display manager. However, it's never trivial. Maybe display managers store this information somewhere, but that I wouldn't know.