I have some ideas about why the "remove inactive players" is so slow to occur. Here they are:
1) Maybe the goal isn't to remove inactive players so much as to consolidate active ones. If so then an inactive player in the middle a bunch of inactive players would get a lot less priority since remove/don't remove has a low impact. On the other hand, in active areas an inactive player has a higher impact and so might be removed more aggressively.
2) When you remove an inactive player you leave a particular kind of slot open. Since you can only fill that empty space with active players with the same boosts, the pool of available active players may be a lot smaller for those boosts.
3) If everybody checked, "don't move me" and all things were equal, there would be a lower and lower density of active players. After all, almost everybody eventually quits and so every player goes inactive. If nobody is willing to move, or a significant number are unwilling to be moved, there is no way to improve the active density of an area.
4) Since most large, active players check "don't move me," they form a sort of "net" of permanent activity. The longer things go the more spread out that net will become and the more "holes" it might have -- places where activity is lower. All of which means the general level of activity will become lower overall (if you measured activity and gave it a number you could find the average activity of all the locations and thus, I'm saying the average activity per location will naturally go down if the active players say "don't move me.")
Thus, removing a player from an active area due to inactivity would require an active player becoming available of the same boosts and willing to be moved. And to make an area more active there would really need to be more than one player meeting those descriptors. Conversely, if an active player is in an inactive area it may be that they have to wait a while to be moved exactly because an opening of their type has to be found in a more active area. I doubt the moves are random since nobody wants to be moved to a less active area. In addition, the forumla for "active" and "inactive," as has been suggested, is probably quite complex and makes the whole thing a lot slower.
In my opinion Inno would have been better served by having everybody able to move. Your level of activity gives you higher priority and as you grow you are moved more and more toward the center....meaning the "center is active" 100%. The size of your city shouldn't matter but the level of activity, including days of consecutive play, visits done as a percentage of visits which can be done, fellowship membership, and a lot more, including, perhaps even diamond purchases (which has to be controversial, but I've never been afraid of a little controversy).
Anyway, those are my thought on why inactives might be allowed to hang around a lot longer than would seem reasonable.
AJ