I think the issue in this thread is that most people have never done a project that requires not just a programmer, but an amazing programmer. It's not until you try to make a complicated application, that's more than a basic dynamic website, you start to realise the problems that outsourcing brings if you have no technical knowledge yourself (or a load of cash/equity to offer for a CTO).
You also assume in the post that a programmer is not able to think like a marketer, and there's a fair few people on this forum who disprove that (Cardine, Dchuk, Mattseh to name a few with SaaS co's).
For most internet marketers, the programming skills are a luxury. For an internet marketer, being able to program is not a vital skill, and you can typically scrape by using cheap coders to help you out with landers or building an admin panel for something. If you want to build software though, or build any kind of company where your technology is one of your competitive advantages, it's an entirely different matter. Pretty much every successful company in silicon valley highlights the importance of having great developers, and they fight tooth and nail to get the very best.
As one example, Hubspot pays a $30,000 referral fee to someone that refers them a developer who they go on to hire. If programming was a commodity, why would a business ever do that? They don't do it for hires in any other area of their business.
An outstanding developer can be literally 10-100x more productive than an average one. A not-so-great developer can actually be negatively productive, due to all the bugs and technical debt they build up, that bring up problems and have to be fixed down the line.