When updating annotations in "normal" tables, the annotation is marked as deleted without changing any data and a superseded_id is set to track the altered annotation. This allows time slicing and ensures data is never lost.
In reference tables, however, the data is updated in-place. This is intentional, as the code specifically has different behavior for reference tables, but this has a number of negative effects. Most importantly, old data is actually destroyed and time slicing is not possible. It also breaks the logic of live-live query, which uses the deleted tag to know to remove annotations from queried results. Neither @dlbrittain nor I could figure out a reason why this behavior should differ from regular tables.