I thought only kind people who have great achievements could keep their body in hell or heaven so that they can continue to improve; Kami said that when Goku died the first time. But why did people like Cell, Frieza, Dr. Gero (and this one can't even fight!) keep their bodies? What's more, Baby didn't show up in hell. Why did all of this happen?
And why did Chi Chi keep her body when she died? She was sent to heaven in a flower ground with some other people when Goku was fighting Majin Buu.
It was also the case for Raditz and the Ginyu Force. It puzzles me too and there was never a definitive reason given. I think it's because they are strong fighters when compared to the other 'normal' people who go to the Other World. For example, when Raditz died, King Yama told Goku that Raditz was unruly and he had to subdue him. He also said that he was going to send Cell down below, but he would have liked that so he gave the stamp of approval to stay above. I don't think there is a definitive answer for this, though it is likely due to the fact that they are all strong fighters.
That's an inconsistency introduced by the anime. They introduced them in fillers, to be able to make more chapters from the manga. As with other fillers, that was inconsistent with the more coherent manga.
In the manga, only a few warriors are allowed to have their bodies in the alterlife. Other souls were shown as little clouds. Specifically, evil souls were punished, purified and removed of any memory before reincarnation.
I don't think it was ever really explained, not in the anime at least. At first I thought it was just all hell-goers kept their bodies, but you'd think there'd be a lot more down there. It's gotta be something along the lines of what iKlsR suggested: skilled and well-trained fighters.
Regarding Baby, that's in GT and it's probably better to not consider him when figuring it out simply because you can't determine if it's 100% canon or not.