During recent work on some web based Core appliance images I discovered that none of our snaps can actually properly use mdns, i.e. firefox, vlc or chromium can not use http://foo.local urls at all.
even if you allow them to connect avahi-observe or avahi-control they will not be able to resolve anything using mdns. this seems to be due to the fact that /etc/nsswitch.conf comes from the core snap for any snap used.
the /etc/nsswitch.conf inside the core snap has:
hosts: files dns myhostname
while for proper mdns support the line would need to look like:
hosts: files mdns4_minimal [NOTFOUND=return] dns
adding this line by default and not having mdns/avahi/bonjour in use might cause DNS lookup delays though (additionally you might need to stage libavahi-client3 in your snap to have support for the mdns protocol at all).
we could indeed make all snaps use a layout here and re-map their own nsswitch.conf on top of the core snaps /etc/nsswitch.conf (sadly glibc has this path hardcoded, not overridable and former upstream discussions seem to suggest that an attempt to change this will not be approved) but that sounds pretty painful to do for every snap that could potentially use .local resolution.