[2 Nov 2017: demo updated to version 3.1 as per my exchange with Jonathan Mickelson in the comments section below.]
I thought after part 2 that this technique had been thoroughly discussed and dissected, but Geoff Gerhard of Creative Solutions writes to point out that, if the goal is to have as few moving parts as possible, the table occurrence (TO) count can be further reduced, from four to three…
…and he has provided a demo file which I am sharing with his permission.
Demo file: reciprocal-linkage-GGv3.1.zip
On the main layout the Linked Documents portal, which was formerly attached to join_doc, is now pointing at a second instance of doc_doc, filtered like so:
Also, the Hide Object logic on the “make link” icon has been streamlined:
I asked Geoff about the above, and he replied, “I like the look/logic of a single test. I think the explanation that the hide condition applies to the portal’s instantiation of the current record PLUS any/all linked records clarifies the logic of this construction.”
Additional changes: the join_doc TO has been removed from the Relationships Graph, and the navigation logic on this button has been updated.