Side effect of this is now reloading / adding / editing users doesn't kill afpd. Refreshing the DNS name can take a second from avahi (10-30 seconds to be exact), but eventually things get in synch after the SIGHUP is issued to the daemon.
Check avahi-daemon.conf into the sourcebase because of the following comment in avahi-daemon(8):
-r | --reload
Tell an already running avahi-daemon to reread /etc/resolv.conf (in case you enabled publish-resolv-conf-dns-servers in avahi-daemon.conf) the files from /etc/avahi/services/. >>> Please note that this will not reload the /etc/avahi/avahi-daemon.conf. (equivalent to sending a SIGHUP) <<<
Sidenote: we probably don't need to reload avahi-daemon because it has proper kqueue support and does a directory watch on the config files, but this needs to be tested before the logic in the notifier code can be removed.
This resolves ticket 1044 and partially resolves ticket 1101 (the catch with the latter ticket is if AFP is enabled and CIFS is disabled, it will still go and kill AFP today).