Progress on this and related topics, via the new BindableVarMap objects now available in my Simulation Aids module:
JVM persistent objects are available with globalVarMap(), similar to but distinct from system.util.getGlobals(), available in in both scripting and expression bindings. Scripts can notify corresponding bindings via a .refresh() method.
Perspective session, page, and view associated maps are available in both scripts and expressions as for global variable maps, but these maps are weakly linked and are automatically discarded when the association is broken. As yes, expression refresh notifications also work with these.
Edit:
Also note this long-standing script library bug that can affect persistent object setup: