It seems that each function in a network app that - listens to the net, should have an independantly configurable inbound ip and port. - talks out to the net, should have an independantly configurable source ip and port.
And when there are multiple interfaces / NAT, address metadata and metainfo are sometimes needed for both others and self.
A reachability test would have both listen and talk config parameters, and even meta needs.
Like most tools of its vintage, tor started with few knobs, configurability often came slowly as use case bugs.
'Address' might have multi role of... - default network interface chooser - embed this metadata in communications / consensus for others - for self, tell daemon who it is, where to reach self, etc
'Address' is not documented as supporting IPv6.
Seems in the above may be what you're seeing. Maybe some more config abstraction or docs would help.
'self-test' and 'reachab' appear a few times in limited context in the manpage.
BTW: Hyphenating these two will conform the entire codebase to the 'self-test' form for those searching it...
tor-0.3.2.10/src/or/router.c:1461: /* XXX IPv6 self testing */ tor-0.3.2.10/src/or/router.c:1470: /* XXX IPv6 self testing */