Re: Location
From personal experience developing for a trading company, the quality of work that was outsourced to Indian subsidiaries was utterly dire.
The problem was not their nationality but that these companies were basically revolving doors hiring the cheapest people they could find and retention was appalling. On top of that nobody EVER pushed back or showed any initiative to fix problems they found in the requirements or code. I'd often see code building SQL statements up by hand, or doing client side only checks on fields that should have been checked on the server side. The sort of thing that could be exploitable.
That isn't to say quality was perfect where we worked but there was a high level of business knowledge, development experience and fairly good retention so people didn't just sail off into the sunset after 3 months working there. That counts for a lot.