I don't think there is a general problem with introducing social classes including slavery into the game. Most (if not all all) ancient civilizations used slaves to build their empires and because 0.A.D pays close attention to historic facts, this would fit to the concept.
But the problem is the specific implementation, which is why I think it is not a good idea.
For one, there are the concerns @Stan` mentioned, about how to depict and balance complex social classes for all the different civs.
There are also moral implications (which I will discuss based only on my thoughts, so the generalizations I make are only assumptions ):
0 A.D is a game of classical warfare. This means explicit depiction of violence and war is to be expected. Also the violence is used by all players, so there is the concept of resistance, counterattacks and so on. Therefore the game tells a tale of a cruel but "fair" fight for the win between equal parties, using classic motives of victory and heroism. This is why the violence is morally justifiable for many people.
The problem with depicting slaves is that it is only a one way violence relationship. And because complex sociological roles and the effects they have are hard to depict in-game (we have no concept of popularity as a commander or morale of the units as Stronghold for example), they would probably just be very weak "throw away" units. So this could change the story of the game from playing a commander fighting "honorably", which has a positive connotation in many cultures, to playing a slave owner exploiting slaves, which has a negative connotation in many cultures and will deter people from playing, even if it based on historical facts.
And just to remind everyone what effect the depiction of social roles has and how people react to it we can look at women in 0.A.D:
So the questions for me are: Do we have a concept for an implementation that doesn't have the inherit bad connotation of playing a slave owner? Can we really depict the historical complexity in an accurate way? How would the gameplay actually benefit from the introduction of social classes and slaves and is it worth effort to finding a good implementation?
Now about the naming question: I think it makes sense to stick to common terms everyone understands even without historical background or knowledge about the game. The term citizen may not be correct for all units, but it is the word that everybody understands and that is used in many RTS (I believe?). If we want to change it I would either switch to using the unit roles e.g "worker" and "soldier" ect. or use a generic term like "residents". Word combinations as "worker-solider" are really not good in user facing texts, because no one knows what is meant by that when seeing it for the first time.