The agent should not return ZBX_NOTSUPPORTED for net.dns.record queries which fail, unless the item actually is not supported by the agent or the agent itself fails internally. ZBX_NOTSUPPORTED is very nasty, as the only way to monitor for it is nodata(), which has issues and does not provide a clear result.
Any result received from a DNS server should be logged as a string, be it a record or an error. The errors are important data, something we'd like to use for triggers. Any typical failure to reach the name server (timeout, connection reset etc.) should also be logged.
Additionally an item like net.dns.record.status with a numeric type, maybe with a value map, could be much more useful (and easier to trigger). The agent should be smart enough to only query once and populate both items.