Zend certified PHP/Magento developer

Why does Magento 1 reuse indexing events?

Before indexing event is saved, Magento 1 tries to find an existing event for a particular entity in Mage_Index_Model_Resource_Event::_beforeSave:

protected function _beforeSave(Mage_Core_Model_Abstract $object)
    {
        /**
         * Check if event already exist and merge previous data
         */
        if (!$object->getId()) {
            $select = $this->_getReadAdapter()->select()
                ->from($this->getMainTable())
                ->where('type=?', $object->getType())
                ->where('entity=?', $object->getEntity());
            if ($object->hasEntityPk()) {
                $select->where('entity_pk=?', $object->getEntityPk());
            }
            $data = $this->_getWriteAdapter()->fetchRow($select);
            if ($data) {
                $object->mergePreviousData($data);
            }
        }
        $object->cleanNewData();
        return parent::_beforeSave($object);
    }

Also, method Mage_Index_Model_Event::mergePreviousData is called, which keeps the old event data and merges it with the current data.

I have a couple of related questions:

  1. Why is Magento searching for an existing event and not creating a new one?
  2. Why does it keep the old event data?