The fetching time is fully defined by a strategy that will be introduced after step (2) is complete. Currently it's fully fetched on execute of the first query, the main difference is that it's copied into a file and not heap.
As of multiple portals, we are talking about autocommit mode. It's mostly about supporting this mode and not forcing user to start a transaction or opening another connection. And I am against the idea of driver making multiple connections as it will screw up a lot of connection pooling scenarios and setups.
Best regards, Vitalii Tymchyshyn