I'd say yes to both, and so the problem would persist.
One way to solve this would be to put every single device on a separate vlan (like some public networks do). Just like NAT, that approach certainly has its advantages for the average user from a security perspective, but forces centralization and usage of third-party servers where it shouldn't be required.
Maybe what we need is a "network administration protocol" that would give you pop-ups on your phone when devices tried to discover what's on your network.