Okay, noted. My peeve with this is that the first callback won't be invoked until the data for the second callback has been written. Because it keeps combining callbacks, that could be a long time coming. Imagine you do a 1,000 writes.

Generating closures like that is also fairly inefficient memory-wise. V8 needs to create a context object or generate code for each closure. Either way, it comes at a non-zero cost.