I think the problem is that managers don't know how to divide up work between onshore and offshore staff. It requires somebody closer to the details to make such decisions. But those who are close enough are those who are being offshored. A more rational approach (from an efficiency standpoint) would be to offshore half the staff and let the onshore staff decide which tasks to offshore. For example, let the offshore staff deal with some odd Heisenbug while the onshore staff analyses and gathers customer requirements. However, companies are relunctant to do that because it ruins morale for the remaining staff. It is phychologically easier for management to send them ALL out of mind and out of sight.
In the longer run the process will be tuned better such that offshoring is cost effective. Current failures are just part of the learning process. The problem is that it was sold to managers as an instant cost-cutting measure, but it is not [1]. If their goal is to cut costs within a year, they were sold a bill of goods.
[1] I suppose firing everybody will cust costs, but it will also stop revenues.