I'd differ from what you mentioned. The 'I am always right' and 'dominant' attitudes are mostly personality, and individual differences rather than 'Programming' (of course) - and that can happen anywhere and everywhere, not necessarily in an outsourcing scenario, but also in case of a new (FTE) hire.
Now to mention about the coding / programming standard differences it is exactly that! A lack of established coding standards, and that again differs from programmer to programmer, and firm to firm. Practically no one, who has basic education into computer science / programming, would ever use 0 = true and 1 = false. Programmers learn those basics with Binary codes (and practically while learning their basic Mathematics ). Not commenting properly, unstructured code, naming conventions is all about following best practices, and laid out coding standards; and if youre a programmer youd almost certainly find those different in the code written by your peer sitting in the next cube (we dont need to search for peers across oceans and lands to find those examples and differences).
The instances you mentioned are all about a decent individual, matured programmer, and established processes or rather lack thereof; and none to do with leveraging the potential of outsourcing which = Smartsourcing!
Keep Up with TechRepublic