To echo what everyone else has said or will say... no, this is not fair to either the user or the small business owner. That being said, this is exactly why business should never expect or try to get a majority of their business from Google. How much of the foot traffic will be coming from offline marketing? From forums? From paid ads? The list goes on and on.
Showing Yelp in every result sucks for everyone except Yelp. The problem is, you can't change that; it's just how Google's algo is working for the time being. Effort and energy is better spent figuring out how to drive more referral traffic from sites that focus on that topic instead of focusing on Google results for that particular keyword.
Keywords and rankings matter to a certain extent, but I've just come to the realization that Google is the way Google is. You can criticize the results, but what has that really done for your clients/your business? Energy is better spent moving forward.