Yeah, its all about the AI. If I could get some good AI logic around if the AI should cast or attack, or cast or move I would do it. But there are to many variables in those conditions to do it, so to make the AI more competitive it cant be forced to make that determination.
So every AI unit every turn looks at all its available spells to see if it can cast any, and if so which one weights out the highest. Even with that its pretty hard to get the AI to figure out if it should fireball or ring of flames, crush or whirlwind, wither or bless. But I think we have a decent model for doing that (though others may be able to improve on the specifics, the important part is that the system can handle those aspects).
Throwing in "should the AI cast bless or move, cast fireball or attack, cast heal or attack" etc is just going to trip up the AI.