hive.remove_unecessary_events remove also required BACK_FROM_FORK events
hive.remove_unecessary_events uses it to remove obsolete events:
DELETE FROM hive.events_queue heq
USING ( SELECT MIN( hc.events_id) as id FROM hive.contexts hc ) as min_event
WHERE heq.block_num < _new_irreversible_block AND ( heq.id < min_event.id OR min_event.id IS NULL );
For BACK_FROM_FORK event 'block_num' means FORKID , so the events may be removed incorrectly