Eating like a pig is quite insulting as it implies messiness and poor manners.
The feudal lord ate like a pig, tearing off hunks of meat with his fists, slobbering and licking his fingers, and wiping his face with his sleeve.
You are right though, that when used in a general sense ("People eat crabs like pigs."), it is not particularly offensive.
Eating like a horse (eating a lot) and eating like a bird (eating very little) are not necessarily insulting, since they refer to the quantity rather than the style of eating. This can be nearly complimentary:
My son is growing like a weed because he eats like a horse.
She was a sweet, dainty thing who ate like a bird.
Or fairly insulting:
She's fat because she eats like a horse!
She's skin and bones because she eats like a bird.
"Eating like a horse" can be insulting because of its relationship to gluttony, or complimentary in the sense of having a good appetite. Likewise, "eating like a bird" can be insulting because it can mean that a person is being picky about food, or complimentary in the sense of not being greedy.