Many times, customers don't make enough homework and documentation before assigning work to programmers. Remember, programmers are not experts in business. They only know how to code.
Also, over-expectation from a single developer also cause disappointments. Usually, a good piece of software needs front end, back end, and database programming along with solid QA.
Well defined scope, clear test cases, and hiring a team rather than a single person can reduce disappointments.
In my personal experience, reliability comes with experience. But yes you are right not even all experienced ones are reliable.
It entirely depends on the market situation as most of the developers tend to work in a freelance market where they get paid well for even small task. Even if they do not serve you well and leave you in the mid of work, still there is plenty of work available for them.
I have seen many clients giving positive feedback on Fiverr even after not getting exactly what they expected. So giving appropriate feedback can tighten the selection criteria for other people.
What are your criteria for assessing software developers' reliability?