Most non-developer don't understand when someone that is well qualified to handle your project they will make sure there is enough conversations before hand to make sure that all specs and milestones( yes I know you can't know all but just for argument's sake) are fully understood by both parties.
The first red flag should of been an iOS app for $800. I don't do iOS development but I for sure you can't get decent developer for $800.
Red flag #2 was when the client felt indebted to the developer for doing a fix. To me it looks like he is just trying to nickel and dime for everything little change. Maybe that how some people work but from my personal experience as a developer and from contracting from sites like these I've never had an good contractor do this, now that's not to say I haven't had this happen, I have.
Last one was when he said he would hold the sources until a 5 star review, this made me laugh. Now I can see for a review, in some eyes a project isn't complete until a review about one's work has been done, so I can understand that. But denying source until he gets a 5 star that's just absurd. If it was me I would of first made sure all of this convo happened in Elance workroom and then get Elance into it (yeah it would take longer for them to resolve but he would get his files) and then right a lengthy review for this developer to make sure that no one else has this problem.
I guess that's just what you have to deal with when using bidding sites. I'm glad he go his app approved but the old saying still stands:
You get what you pay for