Actually I see the flush func of a soft port is entirely unused, it's never called by a force-output because nothing is ever put in the port buffer as such. The manual could be clearer about what it's supposed to be for :-(. At any rate, I put in the failing test below for port-for-each, and I think flush-all could benefit from the rewrite below, just on general principles.