All the number of cities and units limitations come from the way the actual program is written. I guess they stuck with unsigned short int for cities (assuming they did code Civ2 in C). However, it is not as easy to change as you might think, because the whole "engine" of the game might need changing. It is not only the case of using long int instead of short int, the coders might need to change into a more dynamic data structure that would have dynamicly allocated memory and therefore, have unlimited number of cities, units, etc. (well, not exactly unlimited, the number would be limited because of your memory, so, if you have 8 MB RAM, you would be able to have less cities than with 64MB. However, this is irrelevant, cause even with 8MB the number of cities that you could have in this way would be in the vicinity of tens of thousands).
Sorry, these are just technical details about programming.
------------------
My doctor says that I have a malformed public-duty gland and a natural deficiency in moral fibre and that I am therefore excused from saving universes