It would be cool if rather than civics having an anarchy 'cost' to adopt, they were rated on an ideological scale within their category, and the difference on the scale between the civic you are leaving and the one you are adopting determines the turns of anarchy it costs. So lets say the economy civics are rated on a Unregulated <---> Regulated scale, so switching from a civic like Trade (+2 Unregulated) to Free Market (+3 Unregulated) would be a minor cost, but from Trade (+2 Unregulated) to Guilds (+1 Regulated) would be high. This way changing your empire completely takes a long time, but minor upgrades are quick. It would be even better if the anarchy cost was calculated so that small steps happen instantly but large ones take even more time, something like:
AnarchyTime = (CivicIdealogyChange - 1) * CivicIdealogyChange
So switching between two civics that are ideologically similar (1 point difference) happens instantly, 2 point difference is 2 turn of anarchy, 3 point difference is 6 turns, 4 point difference is 12 turns, etc.
I think the biggest problem with anarchy right now is the AI's don't know how to handle it, and large AI empires get huge +% anarchy times from their cities. My current game had the 50 city Korean empire have a 30+ turn anarchy on Snail, during which they lost about 5 conquered cities to rebellion. Up until this point they were the top civ and had beaten me to alot of wonders and techs, and afterwards they never caught back up. I think if the higher difficulties gave the AI's an anarchy handicap it would help. Something like -10% time per difficulty level.