My recollection is that returning any error from the driver's Open() is the same as returning ErrBadConn, but I'd have to go read some code to be sure.  Another concern is whether the behaviour is consistent all the way back to Go 1.0.