So Unbound looks like nice for this features ;) Easy to set up in a Linux/Windows box as server, it can be used on localhost when connecting to unknown wifi... low memory/cpu usage.
It's used everyday for home/work since on long time ago... surf, etc...
teor :
Using a caching, recursive resolver should be fine. (Then the root servers only answer queries for top-level domains.)