Do half-open streams behave correctly for RESOLVE/RESOLVED and similar commands?
I'm not 100% sure that we call terminate() right—or that we should call it at all!—for streams that we have created by sending a cell other than BEGIN or BEGINDIR. On those streams, if we discard them, we shouldn't allow "maybe a connected and a big pile of data cells": we should instead allow only the cells that would be allowed if the stream were still open.