VS
$entity = $service->doSmth() // added Event to global application buffer
flush() // exception thrown
Dispatch($entity->releaseEvents)
Получится что при ошибке - нам все равно что внутри ентити остались события, их не надо чистить, коллектор их сам уберёт, а вот в буфере на уровне апликации - надо, иначе утечки памяти будут, и второй запрос который флаш делает получится что задиспатчит события предыдущего который зафейлился