Callbacks passed to forEach() are automatically 'unset' when the stream is ending, which breaks the link from one stream to the next after it's done. However, links between streams still remain due to e.g. the mutual aborted() promises being linked. This is not ideal in terms of e.g. garbage collection.
Not sure of a good way to fix this yet, though.