It does, but it may run out of non-dependent instructions to execute while waiting for the long pole of the cmov dependency chain to finish.
This used to be a problem on Pentium4 where cmov had high latency (4 cycles or more), but today, IIRC, a register-to-register cmov is only one cycle, so it is safe to use whenever a branch could have a non-trivial misprediction rate.
In which case cmov would be relatively cheap since it isn't blocking execution of other instructions.