I looked for libraries (including the decred library you linked) and did not see something well working so I went with the basic approach and translated the reference.py implementation to Golang. It’s ugly but works I’ll look at the decred library again to see if I can utilize it.
I don’t think this will be a grave problem, the client should use “ip:port” to identify clients, not just ip address but to be honest I don’t know for sure. I mostly just tested with btcd as I had trouble getting a simple neutrino client running - do you have a minimal example please so I could test?
You are right, I don’t have good answers for that. You could just use the dns seed peers and pick at random but it’s not guaranteed to be a good choice.