Constant bitrate encoding holds the data rate fixed for the whole video. A static title card gets the same allocation as a fast camera pan.
For a file you are going to store or send, this is straightforwardly wasteful. The title card does not need the bits and the pan cannot be saved by them, so you end up with a file that is both larger than necessary and worse-looking in the hard moments than a variable encode of the same size.
CBR exists because live streaming has a different problem. A stream has to fit a network connection continuously, and a bitrate spike that a file would absorb as a bigger file becomes, on a stream, a buffering event for every viewer. So streaming protocols want predictability, not efficiency, and CBR is what predictability looks like.
Where you will encounter it:
- Streaming presets in OBS and similar tools default to CBR for exactly this reason, and should be left that way.
- Some hardware encoders in cameras and capture devices only do CBR, which is part of why camera-original footage has so much slack in it.
- Broadcast and some corporate delivery specs mandate it.
If you are compressing a file to send to someone, CBR is not what you want. Use a target size with two-pass, or a quality target with CRF.