For one, it avoids telling all processes and their mothers the IP of the DNS resolvers they should query, but hands them 127.53 instead. If you then update your resolvers using systemd-resolved, for example because the network changes to a failover line, or because puppet pushes an updated catalog, or you want split DNS for a VPN (like, send *.corp.local to the internal DNS server or something), that is all pretty easy. There are more use cases on servers, but of course you most obviously benefit from this on laptops that roam between WIFIs with different upstream DNS server config.