Postfix VSTREAMs automatically flush output on the next read operation; a lot of things depend on this, including the SMTP client and SMTP server protocol implementations. This is how Postfix avoids sending silly little network packets.
In the case of skipping Milter replies, the idea is that queued SMFIC_RCPT messages will be eventually be flushed when Postfix reads a response from the Milter application; normally that would be at or before the end-of-body reply. I am surprised that the VSTREAM doesn't flush SMFIC_RCPT as it should; normally one has to jump ugly hoops to lose output like that. Just so I know I reproduce this correctly, can I have a copy of a recording (off-list mail is OK)? I can't fix a problem if I don't know if I reproduce it. I cannot drop what I am doing now, so I will analyze this later. Wietse