Shyrramar, I like the way you think
Here's my take on the matter:
1) Any unhappy citizen in your cities has a small chance each turn to become a resistor (just like the ones that appear when you conquer a rival city). The chance would get higher the farther from your capital/forbidden palace/secret police HQ/etc, higher if closer to a rival capital/etc., and would be higher for citizens of foreign nationality. Note that even cities with mostly happy citizens often have a few unhappy ones, so this could theoretically happen anywhere, and would lead to two slightly different happiness related goals: trying to get happy citizens to outnumber unhappy ones, so you don't have civil disorder, and trying to turn unhappy citizens into content ones, to minimize the appearance of resistors. And of course, some improvments/wonders make unhappy people content while others make content people happy, and it would matter in some cases which was which.
2) Now, once a resistor appears, the city is in resistance, just like a freshly conquered city, and you need military units to suppress the resistor and turn him back into an ordinary citizen. The more units in the city, the faster this happens. But each turn the city is in resistance, the remaining people get less happy, so you better quell the resistance quickly or more resistors will start showing up.
3) Each turn a city is in resistance (whether as described above, or simply when you conquer an enemy city) there is some chance that a resistor will spontaneously draft themself into a military unit, which would be a foreign unit if it was a foreign citizen but be a barbarian (or brand-new-civ) unit if it had been a citizen of your nationality. If that unit attacked your units defending the city, maybe they would not get the defensive bonus for the city. If it was a foreign unit, the AI might instead choose to move the unit somewhere else rather than simply attacking the units in the city (it would depend on the overall situation of the game).
4) The only way to actually lose a city, either to another civ, or to a brand new civ born in the rebellion, would be if the city was actually conquered. Keep in mind that if the unit created by a resistor was successful in its first attack, there would be fewer of your units left in the city, thus fewer units suppressing the resistance, thus a greater chance that other resistors would appear and maybe draft themselves into hostile units.
To sum it all up...
Most of the time, all that would happen is that the occasional far-off city would go into resistance and you'd move in some extra military units to get things under control. Less frequently, the city would create actual hostile units, but you'd be able to defeat them and keep the city in your empire. However, if you had far away cities without adequete military garrisons, and you let the people there get too unhappy, it might happen that a rebellion would snowball out of control, all your units in that city might get defeated by the rebels, and the city would either pledge allegiance to a foreign power or declare itself the capital of a brand-new civ. If the latter happened, your other nearby cities would now be very close to a rival capital, so they'd have an increased chance of rebelling as well, and if successful, they'd likely join that new civ.
An Example...
You could then imagine that the American Revolution happened something like this: the English cities of Boston, Philadelphia, etc. were quite far from the English capital, and England maybe didn't have as many troops there as it would like because it needed them back in Europe for the war with France. And then maybe access to a luxury (like Tea) gets disrupted, or maybe the dwindling treasury of England prompts it to lower the luxury slider in order to increase the tax slider. In any case, the people's happiness drops, some of the cities go into resistance, a few pop out rebel units, and some of the English troops start getting defeated. By the time England can ship significant reinforcements across the Atlantic, a few cities have fallen to the rebels, and American has declared itself a brand-new civ. The American capital is now much closer to the cities on that continent that remain British, which increases the likelihood that they'll go into resistance as well, and to make matters worse, the new American civ makes diplomatic contact with France and signs an Alliance against England. England fights for a while, maybe occasionally taking back certain American cities, but the Americans capture other English cities in America, and eventually, England has to give up and agree to peace with the new American civ, leaving it with most of the North American cities (not all, the cities in Canada would remain English, for now).
It would be really cool, not to mention more historical, if this sort of thing could happen in the game. Sure, it'd be frustrating if you were England, but think about if you were France: you see some of the an AI rival's cities start rebelling, and think, "cool, let's help the rebels!"
And most importantly, this scheme would get rid of the culture-flips where you suddenly lose a huge stack of units in a defecting city. It'd be much more understandable (from the English perspective) if you actually saw your units fighting and losing, rather than simply dissappearing. Not to mention that the closest Civ 3 could get to the American Revolution would be to have some English cities culture-flip to the Iroquois

.