There isn’t anything wrong with the implementation in Manjaro. It is done correctly. That is the whole reason the issue was never “fixed”. The problem only occurs if your internal network is configured incorrectly (by incorrectly that means you are using the TLD .local as your DNS domain name which is a reserved TLD name used by mDNS).
Basically you want to make sure you internal network isn’t using a .local domain as that is where the problem comes into play and where DNS and mDNS can bump into each other. So if you setup your router to use the domain mydomain.local or anythingreally.local then you are going to have the issue with mdns. The thread you posted is a very interesting read but it also shows that they since it is following all of the correct “rules” they don’t see it as a problem and have no intention of fixing it to work with incorrectly configured local networks since .local is now a reserved TLD and shouldn’t be used. One of the reasons the use of .local is frequently out there is that dating back to the early 2000’s Microsoft used to recommend using the .local domain for internal networks when setting up AD and it was recommended as part of their “Best Practices”. At the time they made that recommendation .local wasn’t used officially for anything. That later changed in February 20th 2013 when the IETF ratified RFC6762 which now reserves the TLD .local for use with mdns. Anyway from that thread the most useful workaround info is as follows:
Original, delayed lookup on improperly configured internal networks:
#hosts: files mdns4_minimal [NOTFOUND=return] dns
Use this if you’re not on a local network with Microsoft services or if you don’t need on them:
hosts: files dns
Delays looking up hosts on your internal network, but you will get the best of both worlds;
multicast DNS resolution and resolution of your incorrectly-named internal network:
hosts: files mdns4_minimal dns
So based on manjaro default of the following:
hosts: files mymachines mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns mdns4 myhostname
You could try this config if you want to use mdns (a lot of “internet of things” devices like network speakers, thermostats, video streaming server devices, etc… use mdns) and have your local network incorrectly configured to use the reserved .local domain and have no way of changing it the following should let you use mdns and not cause a really long delay.
hosts: files mymachines mdns4_minimal resolve [!UNAVAIL=return] dns mdns4 myhostname
That being said the ideal solution would be to fix the incorrectly configured internal network to not use the .local TLD.