Also notable in the context of "two-way mapping" is Dynamic Windows, the Symbolics Lisp-machine window system. Dynamic Windows was a "presentation-based interface", by which its authors meant that data structures had "presentations", which were interactive widgets that could be used to interact with values.
For example, if you evaluated a Lisp form in the Listener, it printed out the value just as you would expect, but what you might not expect is that both the evaluated form and the returned result would automatically be mouse sensitive and would offer menus of operations to be performed on them that were relevant to the data structures that they represented. The text on the screen wasn't just text; it was a "presentation"--in other words, a kind of reference to the in-memory data with an interactive visual representation.
Later, Apple did something similar with SK8, a sort of Hypercard-on-steroids built on Macintosh Common Lisp. Its design was not exactly like Dynamic Windows, but it shared the idea that values could have presentations. A distinctive feature of SK8 was that you could grab and drag widgets with the mouse, then drop them into a listener window to get references to them that you could then use in code to operate on the live widgets.
So there's definitely a good amount of stuff you can do in this "two-way mapping" direction. Some of it has been done before. Doubtless much more remains to be discovered; it just needs the application of labor and imagination.