Archid
Warlord
If I'm not mistaken, Python may have a way to program an AI action override routine but I'm not sure if that always must interrupt the normal dll evaluation process before, after or during the normal dll AI determinations. I'd assume it would come in at the beginning and thus would potentially cripple the unit from doing anything BUT what the Python tells it to if it can always find good reason enough to do so.
You are correct in that there is a python function for this AI_update. This is called before the DLL AI code and if it returns true then no other AI code is run. It's a very brute force method and tends to cripple the AI as you mention. There is a lot of AI code in the DLL, not all of it particularly good in OOB, that does multiple calculations that are not available from Python to determine the units best move. If you use an improved AI DLL such as BBAI or even better K-Mod then this should be avoided at all costs!