The avahi USE flag in that cups ebuild is broken and misused. Misused because it states there's a dependency over either avahi or mDNSResponder, so it's not *AVAHI* code that gets enabled, but *ZeroConf* code (there's a zeroconf USE flag for that). Plus the dependency as is will skip over mdns even if requested because avahi can be installed (and usually is) without mdnsresponder-compat. In my case I didn't have mDNSResponder installed either, but the dependency was still satisfied. The result is a cups with no mdns support after building it with avahi USE flag enabled. The solution is to replace the current avahi useflag with zeroconf, and then add avahi as addition: when avahi is enabled avahi is dependend upon, and then during pkg_setup there is a built_with_use check for mdnsresponder-compat; when avahi is disabled, mDNSResponder is dependend upon. This results in a working ebuild.
Ah, and you need at least for avahi to depend on avahi-daemon when you enable it, which is another reason why || ( ) dependencies are NO-NO in this case. Feel free to look at pulseaudio init script to get a way to make init script dependencies conditional.
Fixed in CVS (cups-1.3.4-r1), thanks for reporting and help.