I love this gossip deep dive you're doing. Another question is "what is the role of the address in the node announcement?" Is it needed for public channels?
I would argue its role is to allow other nodes to find and connect to you for the first time. I would prefer to have a separate peer message to provide an inbound connection address privately to your peer - this would be an unsigned message, unlike the node announcement. I think this makes sense as public gossip is mostly public data about nodes and channel topology while channel activity is all private between two peers. Better for reliability, privacy, and latency if these public and private connection addresses aren't necessarily the same.