That's because the DNS lookup of
abcdefghijklmnopqrstuvwxyzabc.com is,
in your environment, not returning "does not exist" (which would get
mapped to 'none'), it is returning a message that cannot be parsed by
the Go library, which is considered a permanent error.
So this is something between your DNS server and the Go DNS client, and
not an issue in the SPF library.
If I try that domain here on my machine, I correctly get a 'none'
result.
I suggest you look at your DNS server because it is strange it's sending
an invalid reply (as shown by the "cannot marshal DNS message").
Thanks!
Alberto