I implemented OnHouseAfterDestroyed, that was fairly easy. It doesn't provide you with any parameters since you know that it will relate to the last call of OnHouseDestroyed, so you can store everything you need in global variables. We could provide some basic parameters like HouseType, X, Y, Owner, etc., but I want to make it clear that OnHouseAfterDestroyed is for special cases only and OnHouseDestroyed is the main one you should use, since you can still use the HouseID as normal (because the house has not yet been destroyed).
However, I've been looking at OnUnitAfterKilled and there are some problems. With houses there is no delay between OnHouseDestroyed and OnHouseAfterDestroyed (the code goes something like: OnHouseDestroyed, DestroyHouse, OnHouseAfterDestroyed) since destroying a house is very straight forward and instant. But killing a unit is complicated since there is (usually) a death animation after OnUnitKilled. The Unit ID will be invalid as soon as the death animation starts but the unit is only removed from the game (so you are able to place a new one on the same tile) after the death animation finishes. So OnUnitAfterKilled may happen a few ticks after OnUnitKilled, and if a few units are killed at once you won't know which one it is referring to after those few ticks...
I guess we'll have to provide some basic parameters like UnitType, X, Y, Owner. But then this is very inconsistent with OnHouseAfterDestroyed and will probably confuse people. I'd prefer the two "After" events to be consistent and for it to be clear that they are designed for special cases when you need to replace the unit/house, since the normal Destroyed/Killed events are much more powerful as you are given the Unit/House ID. I'm not sure how to resolve this yet