One of the major determinations of a person's political affiliation is their parents. The parents give you your values, they generally set your level of education, they pretty much fix your income (parent's income is the strongest correlation factor when estimating a person's income). In America at least, it is rare to deviate substatially from your parent's situation, it is certainly possible, but it isn't common. The mobility idea just enforces this situation. Thus, areas that are red tend to stay red and areas that are blue tend to stay blue.
Sure there is some swapping, but that swapping isn't fast nor is it sizable. The swing states are mostly due to voter apathy/enthusiasm on one side rather than the population actually changing parties.
I grew up in a town of almost 20,000 people in rural Nebraska (one of the most consistantly red states especially when you compare voting percent of the individual states to the national percent). My home town (I no longer live there but I still live in Nebraska) was about as red as they come. My county, while not the most red county in the state, still voted 70% for McCain. Most people went regularly to church, less than half had college experience and less than 20% actually graduated from college, there was one black family that I can recall in the entire city, and the majority of people never moved more than 50 miles from home (heck several I knew never left the county in their entire lives). My question to you is this: what would cause people in this county to suddenly vote differently? They aren't exposed to new ideas or new people. They don't see the plight of the homeless or the poor. They just have nothing to switch them blue. So they stay red.
Democrats have reached out to urban people: mostly the educated, the poor, or the multicultural. None of those three groups tend reside for long in rural areas. This means that there isn't a Democrat base in the rural areas nor is there any real trust that these people even exist. What I mean is that if you never have seen a slum, why should your tax money go to people in a slum? You don't have much compassion for a problem that you haven't seen nor have you been educated about. Democrats have never reached out to the rural population. So they stay red. Republicans do reach out to the rural population. Not significantly through farm aid, but through values. People that I know buy anything you throw at them if it is (a) negative towards democrats and (b) can be linked in any way shape or form to religious or family values. It doesn't have to be true, it just has to contain (a) and (b). This is exactly what the Republicans have been preaching.