fyi: i successfully tested your test case with the following code fragment:
Node a = root.addNode("a");
Node b = a.addNode("b");
b.addMixin("mix:referenceable");
Property p = a.setProperty("ref", b);
session.save();
a.remove();
session.save();
// removal of a succeeded...
cheers
stefan
