I have multiple nodes behind a UPnP-capable router, and it seems that the nodes, when registering to the global discovery server, advertise both the UPnP-obtained port AND the local listening port (22000).
This results is a very sub-optimal situation because my router itself is also running a Syncthing node on port 22000, which means that any external node trying to connect to a node behind my router also tries to connect to the node running on the router, prompting spurious "do you want to allow node ___ to connect" notices on the router's node, while also significantly delaying connections from external nodes to internal nodes -- and in some cases is a significant enough problem that the nodes never connect, incorrectly falling back to a relay.
If the internal nodes would just publish accurate information to the discovery server, I could avoid using relays.
Why do nodes advertise both their local listening port and the port obtained from a UPnP server? Is there a way to force them not to announce the local listening port globally?