You should really differentiate between units and vehicles, as vehicles have special rules.
You can setDammage 4.0 on vehicles, and that will be the same as setDammage 1.0 for a unit.
If something has full-out damage, it is dead.
But it can also be dead before they top-out on the getDammage meter.
Therefore you will need the or !(alive unit), as it will detect "If damage is above X or if the unit is dead".
Because, it is quite possible for something/someone to "die" before they go above getDammage 0.5, and then the script/trigger will never be true.