All the alternatives are either unreliable and slow (bonjour/mDNS) or require manual setup prior to use. Given that machines, networks, routes, etc. are all becoming increasingly ephemeral in the end all you end up with is a DNS, .ssh/config, or hosts file with hundreds or thousands of stale entries for things that existed for five minutes. In some environments there are nice systems for naming things and IP address management but these are hard to set up and maintain and aren't feasible in really heterogenous settings.
I guess Martin Fowler was right: there are two hard things in CS, cache invalidation and naming things. This is naming things.