Sure, all those points are true. It is just a matter of making it convenient for consumers to be able to do `mySocket.close().then(...)` instead of `mySocket.close(); mySocket.closed.then(...)`. The individual stream APIs do this.