I'm guessing he has privacy extensions turned on (which they are by default), and he wants to connect outwards using the non-privacy address (which you can add an rDNS entry for), rather than the random and frequently changing privacy addresses (which are a bit of a pain to add to DNS), and to do so without also losing the ability to connect to IPv4 servers.
This seems like a fairly common use case (and it is the one I came here to find a solution for). It's certainly not a complex network configuration.
The correct behaviour here is probably for bind addresses to be per-server (i.e. specifiable in servers.ini and to /server). Failing that, I guess the bind addresses should be per-family, i.e. if no address is specified for a particular address family then you should treat it as if no bind address was specified, rather than refusing to connect. The ability to specify multiple (comma-separated?) bind addresses would be useful here, but not strictly necessary for my or rastamanx's use case.
While I'm here, I also noticed that
- You don't appear to be able to bind to a hostname
- Binding to a connection name seems to break IPv6. I'm guessing it's actually binding to one of the IPv4 addresses of the connection (the first? the last? a random?).
- It's kinda hard to test all this, because all you get is "Unable to resolve server" and I can't exactly work out what's going on by looking at the source...
Bootnote: after some more testing, it seems that mIRC does exactly what I want if I use IP addresses, not DNS names (i.e. binding to the specified address if the address family is the same as the IP I give and ignoring it otherwise). It would be kind of nice to get this behaviour with DNS names too...