We could delay deleting the unit for a "couple of frames" until we have had time to report events about it to the script. However, this would create a new strange state for units to be in, an (about-to-be-deleted) state. This will severely increase code complexity and confusion since there would be a ton of places where you would have to check if you were dealing with a "real" unit or an "about-to-be-deleted" unit, both in the script and in the engine. Horrible.
ou perhaps want... instead you would get Enter/Destroy. And you wouldn't be able to tell which unit was destroyed.