@tomocy You are certainly welcome to look at this issue. The first step is to understand what is happening. There are cases of resolv.conf entries that we don't handle, and for those cases we deliberately fall back to calling C code because anything else would be incorrect. That may be what is happening here. In that case we need to decide whether there is anything to change here.
I inspected and I also think that this behavior is caused by dnsConfig.unknownOpt which is set true because edns0 option is unknown there.
This therefore lets (*conf).hostLookupOrder return hostLookupCgohere.