You sound just like the people in my neighborhood who oppose any new apartment or mixed-use construction because apartments bring transients and transients bring criminals.
You don't have to lose people to get blight. You just have to build new houses and abandon the old ones.
You seem to be confused. St. Louis is a city, and has lost people, just like major cities across the country did. This is part of what led to urban blight. It's the St. Louis metro area that has remained stable/growing.
Further, I assure you that people from outside the region make no such distinction when they talk about "St. Louis."
To me, this is a far more plausible explanation than housing oversupply itself being the cause of crime.
This created an oversupply of housing in the region. St. Louis doesn't have too many houses because people went to other cities. It has too many houses because people abandoned the housing in the urban core and built new suburbs. That obviously did cause a loss of economic opportunity for the people left behind. But it didn't happen the other way around.
We're just taking turns flipping over the same coin. The people can't move unless you build new houses. Lack of demand for inner-city housing drives an oversupply of total housing units in the region.