https://github.com/golang/go/blob/master/src/net/smtp/smtp.go#L76-L79
This method can make two distinct SMTP calls. First an EHLO and then a HELO.
If the EHLO fails it attempts HELO. However, if the connection was closed remotely after EHLO the HELO will of course also fail but the error message returned will be a simple EOF from the HELO and the real response will be dropped.
This can be duplicated by sending to a postfix smtp-sink with the flag -Q EHLO,HELO which returns a 4xx response and disconnects.
Since two separate calls are made, maybe it would make sense for this method to return two errors? Or perhaps a single composite error?