The Conundrum of Meat Names

I've been wondering this for some time now. Why is it that when we change how we refer to an animal's meat depending on the animal?

For instance, we don't eat steer, calf, ox or cow. We eat steak, beef or veal. Similarly, we eat pork and venison, not pig and deer. We never eat "the animal". However, we don't eat Sea Bass or Bream generally speaking—we eat fish, a generalization of the entire category of animals. Finally, when we eat shrimp, clams, lobster and oysters, we eat exactly what we call the animal. 

Lastly, for poultry we eat eggs, but for things that live in water we eat roe. What the hell? I'd love some help here...