When to call swarm.add_external_address()?

Documentation wasn’t super clear, can someone help me explaining in which cases would I want to call swarm.add_external_address()?
I see it is required for circuit relay, is there any other reason to use it?