Each layer in caffe will call forward_gpu. By default forward_gpu calls forward_cpu as it is expected that there is a cpu implementation. Most layers in caffe override forward_gpu to an actual gpu implementation.
When caffe's mode is set to GPU, the forward call will call forward_gpu, otherwise it will call forward_cpu.
This means that if a layer only has a cpu implementation (ie forward_gpu is the default), then all other layers will still call forward_gpu and then forward_cpu will be called on the layer without a forward_gpu override.