Well, I found a solution that sort of works, the basic functionality works exactly like you describe, my problems with it are more around the edges (but I will put those in a separate question).
The only way I found to do this using existing modules and no custom code is using the References Module
This is a bit dated module, and hopefully in the future, Entity Reference will have the needed functionality, but it doesn't at the moment...
OK, so after you install the References Module, you need to install the Corresponding node references module and follow the exact instructions on the module page:
- To install enable the module at admin/build/modules
- Create node type A
- Create node type B
- Create a node reference field on node type A pointing to node B
- Create a node reference field on node type B pointing to node A
- Go to the settings page at admin/config/system/corresponding_node_references. Select to enable the corresponding referencing for these node types pointing to each other.
- Create some nodes and reference them to each other
From that moment on, once you reference it one way, the other way synchronizes by itself (using the newer Entity Reference module you have to do this manually).
Hope this helps.