Just to give some perspective on what doesn't seem to work:
At first I tried to change oCSpell:IsTargetTypeValid() because it tests for oCNpc::IsDead(), but it didn't do anything and I noticed that if targetType = Target_Type_All; than it always returns true anyway. I took a quick glance over oCSpell:IsValidTarget() but that doesn't seem to check whether the NPC is dead either so I didn't try anything.
Then I tried just setting a dead NPC as focus by brute force, ie her.focus_vob = dead_npc; but that just makes the NPC disappear after a couple of seconds??? I wasn't able to hit him with a spell either, but I might have if I tried harder, I'm not quite sure.
I have deleted the condition oCNpc::IsDead() from oCAIHuman::CheckFocusVob() (because that is used in oCNpc::CollectFocusVob()) but to no avail :(
For now I can't find the code that is responsible for excluding dead NPCs from the focus. I believe it might be indirectly "hidden" by using oCNpc_States::IsInState(), but there is no documentation for state-code <-> states and because this isn't really my problem I just can't really be bothered to test all that stuff, partly because I don't have my usual coding environment available to me.
Conclusion: Everything is possible, but this seems to be god damn hard to do. I can't be bothered.