Or is it the case that we always attempt to bind the TCP/IP port, regardless of the presence of a socket file, in which case the failure for port binding does cover the socket situation as well?
This cannot always be the case since the listened-to IP address matters.
I think the socket file error message hint is appropriate. I'd consider it a bug if that code is effectively unreachable (the fact that the hint exists supports this conclusion). If we add "abstract unix sockets" where we likewise prevent two servers from listening on the same channel, the absence of such a check for the socket file is even more unexpected. At minimum we should at least declare whether we will even try and whether such a socket file check is best effort or simply generally reliable.