Yikes! Looks like the type system is broken here: in every other static type system I've seen, references have types not just values. So this comparison should either have included an implicit cast (and worked) or been a compilation error.
This (multiple nil values) is the worst of both worlds. Part of the general weirdness of Go types.