It seems the following declaration does result in both the Scenario (outer) and Transaction (inner) sharing the same name. This seems to be causing issues for the interference analysis (and it does not raise a warning?)
val s = Scenario(Transaction(app read d), named_tr)
Both the Scenario and Transaction are named s.