Many crabs will kill snails for their shells, often deciding they won't like snail shells. Also they bother corals when they walk on them and can be clumsy and destructive. They do clean, but most aren't very efficient (scarlet hermits are pretty good at it I think, but will eat coraline) I prefer snails. I have thought about setting up a little 3 gallon just to keep hermits before. They are interesting, but I don't think they are the best for our show tanks......
I can definitely attest to hermits getting large and taking over snail shells. As far as effectiveness goes, I prefer snails to hermits mainly cause snails can reach all tank surfaces including glass. But hermits are fun to watch!
I used to have both in my tanks. You can minimize (but not eliminate) the snail shell problem by keeping a lot of empty shells around in your tank, so the crabs have something to move into when they grow.
I think a lot of the snail shell stealing occurs when a snail falls off of a rock or your glass, lands upside down, and dies. It happens a lot, especially with snails like astrea or turbo snails. Crabs small the dead snail, and eat it and move in - often leaving the reef keeper thinking that the crab killed the snail for the shell.
I agree but the other thing is not just to focus on the poor hermits----there are many varieties of snails--and they have different cleaning abilities eg nassiarius like to burrow in the substrate and keep it clean. Clams and feather dusters are great water filterers.
Emerald crabs(if you find the right variety) are one of the few inverts that will eat bubble algae.
Starfish and small urchins are also create for cleaning glass and rockwork.
Then there are varieties of shrimp that do a great job--cleaner shrimps, coral banded etc etc
One of the great things about having a reef variety is you can have this great variety and enjoy looking at them while they do their cleanup jobs