Why did Cell and Frieza keep their bodies after they died?
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.