In my current project there are lots of services accessing each other. Some of the services refer to other services using an IP, other use FQDNs. While I can understand the reasons  for using IPs, it obviously makes it the whole setup very fragile. I also don’t think, FQDNs are the answer to everything because they still provide no evidence about their usage to the maintainer of the accessed system.

Live systems are probably less affected by this issue than test systems because the live systems are well known and system owners care a lot about them. OTOH, setting up and maintaing a useful test environment is mainly useful for the developers but means extra work for the system owners.