The kernel shouldn't know or care what "I need to use DNS" means, it should just be told what files I can open and what sockets ops I'm allowed to do.
Is this perhaps an artifact of the OpenBSD development model, where programs are assumed to work tightly coupled to the kernel?