Right now dialing a node and upgrading with identify will make the node return the observed address of the dialer, plus the listening address of the listener.
However in practice, because of NAT traversal, in order to report the address it's listening on, a server needs to know how it's being perceived by the outside.
This introduces the possibility of a cyclic dependency if two nodes try to identify each other.
Separating the observed address from the listening address would make the whole system cleaner in my opinion.