This is my experience of oDesk, from someone who has spent 6 figures with them.
A few years ago I contracted a developer from the largest agency on oDesk at the time, based in India.
This developer had a masters degree, tons of experience, and had a daily rate significantly higher than the average. Things worked out so well that I increased the team to 7 people total from this same company.
After about 8 months, the quality of work fell dramatically.
I ended up cancelling the contracts a few months after that, and found out something shocking from the ex project manager:
The developers I had hired had been switched out for junior level devs. Some of the developers I hired didn't even work for that company anymore. I had none of my original hires, and didn't know it.
They had been communicating with me under the previous names and email addresses. I had wondered why they so often "forgot" things that I had told them 6 months ago.
I was told this was a common practice in large agencies.
The problem: Inadequate accountability, even with screenshots or videos.
Is this problem specific to oDesk? No, not at all. But it's turned me off "per-hour" contracts altogether, and now I only outsource very small, highly scoped, pay-on-delivery projects.