My intuition says there are some stylistic differences. It seems like some development cultures somewhat have better results with more rigid computer engineering sort of tasks with high granularity requirements and more straightforward goals, even if the tasks are really hard, deeply technical and the goals are difficult. I think some are better at the more nebulous sort of tasks with a lot of flexibility. Both are really useful mindsets that seem much less useful if improperly applied.
Given, outsourcing is probably going to be hit-or-miss regardless of who’s doing it.