I don't really see this as a gotcha. Those would-be new arrivals to the city don't materialize out of thin air. Presumably they left some other place behind, and their migration is freeing up housing stock wherever they leave behind. The underlying dynamic is still the same. New housing increases low-end affordability by soaking up mid-end demand for old housing stock.
Maybe you build housing in the Bay Area, and all it does is bring in new people who pay the same market rate. But that migration will free up housing stock in Ohio. The only difference is that instead of helping the house poor in your local area the policy helps the house poor in flyover country. Unless you place a lot more moral weight on helping Californians than Midwesterners, what's the difference?