Number one reason nobody will want to move, even in the start of the game when they find a good unique feature, is research. If you don't have any cities, then nothing is granting you any research, even if we enable you to get techs from goody huts.
Thus, you'll want your wagons to maintain certain attributes of the cities and continue to act with them. Most notably will be research, but also you might want them to continue to produce gold to support units.
I thought about the cities bit some more, and here's what I came up with - some of this is repetition of a previous post, but I think a little bit more logical. I really liked your idea of having cities "off the map" and linked to the unit as an anchor. I think ideally that would be the best to implement.
Nomadic Tribe (city/unit) Mechanism in Ideal
Normal city generates per turn and stores these values:
- Food by means of working the plots and storing amount of food in buildings not consumed on the turn.
- Population by means of consuming food produced by working the plots
- Commerce by means of buildings and working plots around the city
- Research by means of buildings and working plots around the city (commerce converted to science?)
- Culture by means of buildings and specialists
- Production by means of buildings and working plots around the city
- Great People points by means of buildings and specialists present in the city
The main difference of the nomadic "city" unit is that it won't be working plots around it most of the time. That does not mean that people living that way do not generate the values above. There are two scenarios of where the nomadic "city" unit is present - in neutral territory and within other civilization borders. One thing that should be retained is the per turn value generation and retention of total amount over a period of turns. The most important thing is that it the values are generated and retained at all times - on the move, while "settled", in neutral lands and in other civilization territory. I figured that it would be helpful for figuring out how it should and could work to look at the values separately.
Food
Food is the first value that is available to normal cities. It is produced by working the plots around the city within the culture borders. Nomadic cities could do that in the neutral territory, but in other civilization lands that would not make sense. So instead perhaps a building could simulate the basic gathering of food in the vicinity, based on population number or "citizen" specialist - all those not involved in a "profession" are gathering a certain amount of food. Other buildings in later stages of the game could introduce storage of food, resource units could be used to produce additional food to add to the pool of food available.
Population
If the population is not working the plots around the city, then they are "specialists" and generate no food at all. Population grows based on food reserves. Ability to store food and gain food are the major factors in this. The solution to that would be generating food by other means. For example, certain units could create "food" units on bonus resources without improvements at first that could be brought to the city and stored there. While in normal game play planning where to put the city and how to improve land around the city determines food available, in nomadic "city" special "buildings" and resource units would replace that strategy. There probably should be a cap on how much population can be supported by the "city" and if population grows on surplus of food available it would be a necessity to spawn another "city" unit. So instead of building a settler, a "city" unit would have to invest time on a forested plot with a special improvement to build another unit like it to which the overflow of the population would transfer. It would be a decision made on where you are and the ability to cope with unhealthiness and unhappiness of the too big of population size.
Commerce
There's certainly some amount of inner tribal commerce going on, but that does not happen on the adjusted plots, but rather in the "city" itself. So in some way per turn value of produced commerce in my opinion should be based on the population size. This should be enough to maintain a couple of units and the city itself. In order to get ahead gold should be produced by selling movable resources, and creating buildings that add more commerce to the "city".
Research
Research is available from converting a certain amount of commerce produced by the city to research points. It is further enhanced by buildings. If a certain amount of commerce is produced by a building then research would automatically be available. I don't think there's much here to think about, if the "city" unit has the ability to act as a city but not tied to the plot - an "invisible" city in a sense.
Culture
Culture is produced by buildings within the city and by spell additions of culture to the city's culture value. As long as the cities of nomads exist off the map plot - this should prove to be as simple as balancing buildings that produce culture.
Production
Production is based on working plots and buildings available. In nomadic cities it would specialists with bonus of buildings to generate hammers. The difficulty would be in spawning produced units on the same tile as the "city" unit.
Great People
Just as culture - it's another value that is stored in a city array. So as long as city functions invisibly - it should work as well. Same difficulty in spawning the great person on the same tile as the "city" unit.
So, ideally the unit that represents a "city" would act as a city for all purposes but not be tied down to the map location. Could that be done by altering the game engine so it determines how to process the city fucntions based on a new attribute of a city "bMoving". And if that flag is set it looks up the corresponding unit to get the plot info for the city for whatever events have to happen. Another attribute might need to be introduced to to the unit "isCity" - that would hard link a unit to a city that is off the map by the value of the city name or an ID of some sort.
Another thing to look at would be an ability to call the city screen by clicking on the "city" unit. Would that require any SDK changes or will python interface addition would suffice?
I think that removing the ability to work the plots around the city would serve as a reason for increased mobility - at this point it doesn't matter where your city is, what matters is what bonuses you can get to, how can you use them, and how fast can you build "buildings" that allow you production increases. This way the only time the unit needs to be "settled" with extended culture borders shown on the map in is when a bonus resource is present - so that it can be worked and resource units produced. To induce further movement - the resource units spoil, and unhappiness is added to the city if it stays in one place for too long. That can be done by python events. Perhaps storing a counter in one of the unused fields and incrementing it if the location is the same as the last turn?