I work for a small company (about a 100 people) and they have benefits: 401K (no matching though), Good healthcare (additional family members are extra), a short commute. Not all small businesses are sole properiterships, but I see your point. There is plenty of upside for good employees though:
1) Access to the highest levels of the company. I go right to the top to ask for a raise bonus etc. There is no middle management to defer to.
2) Less bureaucracy. If you need something you something to make your job easier or the company more money you go right to the top. See number 1.
3) More flexible hours.
4) More money. Small companies know who butters their bread, and are very willing to compensate valuable employees. I make good money as programmer at a small company even when compared to programmers at large companies. (not to mention I still have a job) I make my companies world go round, and the people in charge of the compensation recognize this and reward me. How does this work at a big company?
5) When things get tight the company will decide who to retain based on their value to the company, and they decision makers at the company will have a good idea who that is. In a small company there the principle players have good job security. In a big company it's more of a crap shoot with nameless faceless manager you have never met before who barely know what you do deciding your fate. Small companies consider some employees nearly irreplacable. Everyone is replacable at a big company. I guess this is the biggest reason I prefer to work for a small company.
Thanks for the reply.