According to http://www.tldp.org/HOWTO/Multicast-HOWTO-6.html: "If the h...

These changes are required as a prerequisite on my FreeBSD box. I'v tested this on OS X as well (see comments). I don't expect these changes to break anything.

However, my original observation still stands: the Zeroconf class needs to iterate on all existing interfaces in order to work properly. The trick with the UDP connect catches just a single interface, which in my (special) case is the wrong (external) interface.