I think it's an unfortunate accident due to how the API was developed.
When CloseWithError was first introduced
(
https://go.googlesource.com/go/+/6defc25c8383ab326e8c11af0c78de8a394dca84,
before the open source release) it could return an error. The API has
shifted a lot since then, and now it always returns a nil error. We
could have cleaned it up for Go 1, but nobody noticed.
Ian