I wonder if "I want to write the documents that appear on the secondary result port to disk" is such a common use case that we should special case it. It isn't strictly necessary, of course:
...
<p:xslt>
<p:with-input port="stylesheet" href="stylesheet.xsl"/>
</p:xslt>
<p:for-each>
<p:with-input pipe="secondary"/>
<p:store href="{base-uri(.)}"/>
</p:for-each>
But that's annoying boilerplate and it interferes with the flow from the primary result port.