I thought about @RogerKratz's comment when I was looking at #301, and regarding his two assertions, I know I disagree with one, though am unsure about the other.

Let's reproduce his comment here for the sake of discussion. Suppose you have three revisions:
1. Persist A-->B [ADD B, ADD A]
2. Remove B [DEL B]
3. Remove A [DEL A]

@RogerKratz says:
1. A query for revision 2 should yield a "live" A with a null reference to B.
2. A query for revision 3 should yield a "deleted" A with a null reference to B.

I disagree with the first claim: I think a query for revision 2 should yield a "live" A with a reference to the "deleted" B. I'm not sure about the second claim. Since B was deleted in revision 2, I can see how a query for revision 3 could set up the reference from A to B as null. Though I think it would also be fair for the reference to be to a "deleted" B (from revision 2).

Anyway, if you can see a more elegant solution to this problem, I'd be happy to implement it, or if you want to do it yourself, that's fine too. Do you have something in mind that will work for collections too?