Earlier quoted context omitted.
It's really not easy to uproot and move from an economically depressed area to an active metropolis. I've done it (Athens, GA to San Francisco in late 2012) and it was incredibly expensive and involved a large amount of personal credit use, cash assistance from family, and time. It was a huge stretch at the time for me to move across the country and break into a new industry, and I did it as a single man, willing and…
"Now that I'm a programmer I can theoretically get a job in pretty much any American city I choose, and probably negotiate a starting/moving bonus" Try getting a job in Athens Georgia with equal or greater salary than you are earning now in SF
There is a major set of blinders techies in the big centers have with respect to how good the market is...anywhere else. It might be easy to walk across the street and land another $120k/year (low for SF, but still respectable enough especially for a single person) job in one of these markets and be doing something a bit more interesting than simple CRUD, but not elsewhere.
The fact is most technology jobs outside these hotspots pay poorly (usually not more than a small premium over other professions in the area) and are just not common anyway. They also are much closer to "grunt worker on the line" than "build your resume by being able to work with lots of technologies". A typical software developer job isn't at a software company in these places. It's in the IT Department as a low-class cost-center line item, working on basic CRUD with little or no say in the infrastructure or even product development, or else a fixed specification project in which you're more or less tinkering around the edges of a pre-existing system.