dnsmasq gets can be used for this. If your sentiment though was that this should be standard, I absolutely agree. The benefit of having a system-wide cache makes it worth it, IMO. `resolverd` or somesuch.
(I've also imagined a similar set up w/ ping, i.e., a pingd, so that local monitoring stuff could ping things without needing to parse ping output or require the ability to open raw sockets.)