This question is totally off topic for Stack Exchange – an entirely opinion based question that has nothing to do with code. What a great question though, I can't resist offering up an answer :)
Your question title is 'How to find a reliable Magento developer?'. Well this is only part of your problem of course, but a bit of due diligence will stand you in pretty good stead. Freelancer websites can be an experience. There are some really talented developers on them, you could get lucky and find a gem (depends how good your nose is), but there are also so many pretenders and cowboys to keep expensive developers in western countries with plenty of work on their hands. Don't rush in with anyone would be the best advice here, and remember you can always test them out on a small change request first before having them redesign your entire website as their first task.
The second aspect to that - not only do you have to find a reliable Magento developer, you have to persuade them to come on board with you and work with you. And then retain them.
The answer to that is 'Be a good client'. From the fact that you've taken the time to come here and ask this question, and then obviously read and digested Alan's answer (you listened to advice, hoorah!) - my spidey sense tells em you would likely be a pretty good client. Being a good client is subjective and this rolls into your main question 'does Magento really require too vast a cost for a small business to consider?'. It is a very good question and the answer to that is 'It depends on you'.
Clients who understand that they can't have everything they might want (if budget is limited), that Magento is a big beast, that some (seemingly trivial requests) can be very tricky and expensive to deliver. These clients can make Magento work for them.
Clients who listen to their developer, compromise when needed, adapt their expectations. Accept that they might have to resort to a clever use of commercial modules rather than having everything hand rolled for them. These clients can do pretty well.
A few bullets on how to be a good client and not have your developer groan inwardly (or outwardly) when an email drops into their inbox from you;
Pay quickly for work done well.
Get prepared and organised so you can get work/change requests in with plenty of notice ( not 'we need this live by Friday!').
The odd 'well done' doesn't go a miss. Really - focussing all the time on what's not right, what you need done next, what you'd rather have had. That can be pretty draining.
I know much of this will be common sense to you, but bear it in mind anyway – a reliable developer is likely to be busy, and money isn't everything. You might not be the biggest client out there, but there's nothing stopping you being the best.