[*]
The structure of the high-level AIs limits systems to certain strategies.
Suggestion to fix: Change the objectives established by the high-level AI components from explicit enum values to more abstract structures; having the AI have the ability to say "mount an offensive against this object" or "sweep this area for enemies" would be very useful. This also helps with custom games; a general set of capabilities means that developing a strategic AI for a custom game could be a fairly simple finite state machine, with defined objectives structures to use at each state.