database use is unintuitive: --dbfirst should be the default
I think most people would expect that when a database is specified, it would be read before performing lookups. That is, the --dbfirst behavior would be the default. In fact, the default is a confusing mix where neither the database nor the DNS is authoritative: If you are doing recursive resolution, it first tries the DNS for the full address, but if it fails it turns to the database before trying the DNS for parent classes. I suppose this behavior makes a certain sense (PTR records change more often than NS records), but it should be documented.
I would make --dbfirst the default or at least document that you probably want this option. I would also add a --dnsfirst option that would try the full recursive DNS lookup (not just the PTR lookup) before checking the database.