So I moved the ed25519 entry earlier up in the list (in common.go) and recompiled (clearing the cache, ensuring the module entry wasn't refreshed!) and, as expected, it negotiated an ed25519 key.
Refreshing the module and it went back to ssh-dss.
But what I did learn was the library will allow multiple entries for a host as long as each entry has a different key type.
So: ssh-keyscan -t dsa,rsa,ecdsa,ed25519 hk-s020.rsync.net >> known_hosts
This created two entries (ssh-dss and ssh-ed25519) and this worked with the original and the hacked common.go.