They may have performed work for you, and they might not have gotten paid. You open yourself to so much liability it's not funny. A judge would look very unkindly to such practice.
On odesk you hire people for projects of limited time.
He didn't mean that you don't pay the people you've hired if they do the work they promised - that will get you kicked out of odesk really quickly.
What he does mean by "gentle fire" is "don't hire them again for more work".
And that's how it's supposed to work: odesk freelancers have no right to expect being hired by you for second job if they didn't perform to your satisfaction on their first job, for which they were paid the amount they agreed to be paid (just to make this clear).
I guess you could think of it like a load balancer distributing work. If there is a worker that is less responsive or sending poorer results than the rest, then you start sending less and less work to them. Ultimately, you run out of work for them since it's all going to the higher performers.
At that point, there's no point in continuing the contract with the lower performer. So, then I will let them know and end the contract and give them the best review and feedback I can while still being honest about their performance.
It's worth noting again that these are short-term part-time contracts, so this already fits within the contractor's expectations. They don't expect this job to last forever and they're generally not too heartbroken if a contract ends. They are often working on multiple contacts simultaneously, so mine is just one of several contracts.
Ultimately all contracts end, even for the best workers. The nice thing about hiring temporary contractors is that their expectations are already set that this is a temporary engagement.