transactions and Oracle dblink
Oracle has spoken:

http://docs.oracle.com/cd/B19306_01/server.102/b14231/ds_txnman.htm#i1008473


  Distributed Query Returns Different Results on Consecutive Runs when
  no Changes Exist in the Base Tables. (Doc ID 561471.1)


...skip some more writing...


  Bug.611416 SELECT AFTER UPDATE AND COMMIT DOESN'T SHOW UPDATED COLUMNS


...skip some more writing...


  "You can use the following techniques to ensure that the SCNs of the
  two machines are synchronized just before a query:
  * Because SCNs are synchronized at the end of a remote query, precede each remote query with a dummy remote query to the same site, for
  example, SELECT * FROM DUAL@REMOTE.
  * Because SCNs are synchronized at the start of every remote transaction, commit or roll back the current transaction before
  issuing the remote query. "