My initial thought (and I fully admit that I may be mistaken) was that; 

As the `names` event is emitted on `RPL_ENDOFNAMES` the callback is not _required_.  Admittedly this is going to be rare as - since you are sending the request, you want the response, but _perhaps_ a consumer would be happy to just listen for the `names` event instead of providing a callback.

Either way my final decision to add this was in order to mirror the behaviour of the other api calls such as `send`, `join`, `part`, `quit` etc etc, where the absence of a callback is handled by `stream.write(..., [fn])`

I'd be happy to remove it :-)