If the result would be semantically different for multiple calls (which you're implying), that's bad. We should return the same object and depend on the caller updating the reflog or something.