For whatever reasons (and there are many) sometimes we need help with our software development. One of the biggest fallacies in getting help is that it is cheaper to hire a $20 / hour engineer on the other side of the world than a $100 / hour engineer in the neighborhood.
It's just not true in many cases.
You're looking at the wrong cost factors. The question is "How can we get this project done, correctly, in the quickest and most cost effective manner"?
For the vast majority of us, our user requirements are a constantly shifting target. So there is a lot of interaction between you and your development team. Which means face to face. And don't forget knowledge and productivity. A good engineer can out code a mediocre engineer by a factor of 10. Really. Also if they are a disciplined group, you don't have to spend a lot of time up front on detailed requirements.
In the end you get a more usable product, faster and at less cost. And don't forget those bug fixes.