As the doc said, the REPEATABLE READ isolation level is used to get snapshot-consistent results.
But is it possible that postgres_fdw could get to know which remote queries involved by each top outer command in the local transaction, and use the same snapshot in the remote server to execute them sequentially? For example, could we use PREPARE TRANSACTION and SET TRANSACTION SNAPSHOT to archive this goal? Then we could use READ COMMITTED on both sides?
I guess the problem is 1. exporting snapshots is not cheap 2. tracking prepared transactions is not implemented. See a nearby thread on "transaction involving multiple foreign server".