Our evdns code is okay, but some people want more from a resolver than we currently offer. This is no longer just a simple matter of saying "So don't use evdns if you don't want it," since some of our functions (bufferevent_connect_hostname) now use evdns where available, and others (listener_create_by_hostname, if we make it) might start doing it in the future.
It might be neat to allow a drop-in replacement to be used instead of evdns_getaddrinfo. It's probably something to do at the event_base level.
Alternatively, we could turn evdns into the very best nonblocking resolver code in the world. But do we truly want to maintain a dnssec implementation?