I am completely on Dave’s side. I fail to see a use case for the way the nil comparison works today. It seems purely a result of technical considerations.
The GOPL has an entire subsection on this nil/non-nil dualism (7.5.1), and it starts with this remark:
A nil interface value, which contains no value at all, is not the same as an interface value containing a pointer that happens to be null. This subtle distinction creates a trap into which every Go programmer has stumbled.
Edit: To anyone who wonders what “the GOPL” is: The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan, Addison-Wesley 2015.