_Comment made by: stuart.sierra_
I was recently working on a system which relied on the default behavior of {{mult}} and {{pipeline}} to automatically close downstream channels. But sometimes the initial "input" channel was closed very quickly, while the graph of channels was still being constructed. As a result, some output channels were left open and some go-loops continued running.
The fix in my case was to create the taps earlier, before any processing, but it made me think about what the default behavior should be.
The behavior I expected is that when {{tap}} is called on a {{mult}} with the {{close?}} parameter true (the default), and the input channel of the mult is already closed, then the channel passed to {{tap}} is closed immediately.