There are "boutique" outsourcing places, some in countries you would not expect, who do specialized sorts of work with the best quality at low rates. A lot of people I know the Los Angeles area run startups with outsourced development shops in India that have excellent, excellent teams.
Personally, though, I don't like working for somebody else's consulting shop because of the agency problems mentioned. For instance you get a call from a customer who wants to know why his project is not moving forward, well the real answer is "My boss told me to work on somebody else's project because it is more important to the company." If you say that you will have an unhappy customer and some kind of "correction" from your boss, but if you refuse to give a true answer for the schedule slip, the customer will wonder if you are brain dead or all getting stoned at work or about to go out of business or...
Software development "inside" a company has its own problems too that show up in various forms.
A "non-technical founder" can often spend $25-50k or so to outside developers to make an e-commerce system that is a "minimal viable product" and then you are in a good place to market it, show to investors, bring in more people, etc.
Sometimes it works but sometimes it does not, you might pay the money and get nothing or get a product which is minimal but not viable.