If DNS related partitions are only partially replicated dnsRecord won't be present. So if the NTDSDSA object of the DC doesn't have msDS-hasMasterNCs: DC=ForestDnsZones,DC=domain,DC=tld msDS-hasMasterNCs: DC=DomainDnsZones,DC=domain,DC=tld Then it shouldn't run.
Do we need to implement this for DLZ also? If DLZ plugin does not load the zones, there is no way to tell bind to reload the zones at a later time without restarting BIND or reloading using rndc. Might be a good idea, so DNS server never will work even if BIND is started by mistake. I guess same restriction can be added to DNS RPC server. It's much easier for RPC server since it can check the NTDSDSA object each time a RPC query for DNS comes in and reply an error if we don't have full replica.