Yes, ceph class is evaluated by Puppet parser before cinder::volume::rbd, so at the eval time Class['cinder::volume::rbd'] is not defined and the dependency is not declared.
Yes, ceph class is evaluated by Puppet parser before cinder: :volume: :rbd, so at the eval time Class[' cinder: :volume: :rbd'] is not defined and the dependency is not declared.