You're gonna be limited by whatever the limit in JavaScript is. So you're gonna have to work around that probably with a custom type and for c++ the Cfixed code for integer floats. It seems like a lot of work for little benefit. You probably also need to fix the UI. Else you're probably just gonna see "Infinity" or NaN.
Creating a new civ allows you to add some historical background to units. So while not playable they can appear in the history section and encyclopedia. (Having a partial structure tree might not be great though)
Feature is now live
This would add a significant size increase.
In the replay above, it does it in loop, so garrison ungarison, garrison ungarrison and so on... Technically it's doing something ^^
Hmm I supose this could be fixed by some sort of debounce function, but it would probably cause more lag. I don't know if it can be fixed easily. (detecting command patterns undoing each other sounds hard)