Let me share an example with you. I have been in software dev for nearly 18 years by now. I am pretty good at creating detailed, structured and well thought through docs for developers.
Now, last year we have experienced a need to outsource two moderate size projects. With great attention to documentation and general dev flow.
Bottom line, despite we did get more or less working results at the end of the day I was not satisfied with the quality of the work done.
The best guys we could interview and get to work with us still showed less confidence, less of engineering thinkin, less of everything than guys who worked in my teams. Ever.
Like litterally less professionalism! And I believe that is ok but it is what it is.
Professionalism and true caring about the product is not core compentenct that is needed if you are part of the outsourcing company. Why? Just because that is not what earns money at the end of the day.
Speaking about US, Germnay, Sweden etc. - guess I would agree that while living in those countries it makes more sense to find good outsourcing Partner which wont happen from the first try anyway.