That's a great point. It's one thing to be able to program it yourself, and another to understand enough to ask the right questions about the code to learn how it works.
If they had the ability to QA the outsourced team's work at a semi-granular level, I'd imagine there would be a lot less disconnect between the work done and expectations.
And one suggestion I offered was to find someone (some uninterested third party) to spend a few hours a week doing code reviews, so at least they have some insight. Of course, it'd be better if it were one of them, but some technical insight is better than next to none.
If they had the ability to QA the outsourced team's work at a semi-granular level, I'd imagine there would be a lot less disconnect between the work done and expectations.