It might even be easier to work with a setup like we have here by giving each of those units a special unitAI that instructs it to do just those things in as simple terms as you possibly could. Then figuring out what conditions to prompt the construction of such units through a call for a unit of that special unitAI type when it becomes necessary.
A more generic or even 'simplified' system could ironically be even tougher to code for the AI to work with a more open ended set of possibilities. For example, a city prompts itself to build a settler unit when it senses that there could be good settleable spots on the area/continent its on, OR good spots that navies might be able to get a settler to reach and both are independent evaluations of the other. But to try to add considerations to 'within space zones' might be harder than adding another evaluation specifically for when the city might think to train a space shuttle or heavy rocket to send into orbit - as in, is it possible? Yes? Cool... question 2, is now a good time? Question 3: are the opportunities still valid, space still available, etc... And if all conditions apply and the city is otherwise doing basically little of great importance, then blam, it trains one of these things. Then the unit AI, when it comes time to ask itself what to do, has simple instructions on what to do to fulfill its purpose(s). That would be a lot easier than to add to a generic settler a huge set of if/thens to see if it can/should be doing something in space when most of the game it can't.