How about a stale Materialized View with Query Rewrite?
Other options could include: Timeout-controlled Transaction Rollback before the join-SELECT, after the two single-table-SELECT, but I don’t know how to reproduce this easily, as it most likely would involve an Application server, while you just seem to be entering SQLs in SQL*Plus or SQL Developer.

Me too :) I don’t think its possible. I thought about how timeouts could solve your riddle and googled for it. WebLogic JMS/JTA came up. I think that in this case the AS issues a ROLLBACK. I found nothing about an implicit rollback after x seconds in Oracle itself.
dba-oracle.com has an article “Timeout dead or idle Oracle sessions”. But this is about sessions, not transactions.