It's a bit like video rendering - anything which requires data transfer back and forth kills performance, but you can sometimes keep things on the CPU a bit further down the pipe before transferring to the GPU and executing the rest of the pipeline on the GPU.

It's unlikely that you would ever want to do pixel rendering on CPU if you had any kind of GPU available, but CPUs can be pretty good at vertex processing. The classic scenario for this is a high end CPU paired with IGP, which is not that unusual.