Avahi-daemon warns you in syslog:
Mar 26 18:37:55 DNS-320L daemon.warn avahi-daemon[3004]: WARNING: No NSS support for mDNS detected, consider installing nss-mdns!
And as you already know uclibc doesn't support nss
+nss-mdns is an extension to glibc to support resolution of link-local
+(.local) addresses via GNU Name Service Switch (NSS) which redirects
+the queries to a running avahi-daemon, which in turn does the resolution
+via multicast DNS (mdns).
+
+However, this does not work for uClibc, as it does not support NSS.
+
+This patch integrates the nss-mdns approach into uClibc's resolver,
+so getaddrinfo() and getnameinfo() calls get redirected to a running
+avahi-daemon before trying to resolve via unicast DNS.
So I don't see a solution for you.
Alt-F supplies the host name when making a DHCP request:
[root@DNS-320L]# ps | grep udhcp
udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0 -r 192.168.1.68 -x hostname DNS-320L
and my router's DHCP/DNS server honors it, so I can use the box host name on any pc on my network.
If the issue is your router, perhaps you could use 'dnsmasq' running in the box, instead of your router's dhcp server (and avahi on the box)? I remember doing that and it worked.