CPU limit similar to CPU over subs?

CPU limit will restrict all QEMU processes belonging to that VM to use as much as cpulimit cores in the host. So even if you have sockets=1, cores=4, setting cpulimit=2 will make QEMU to not use more than 2 cores in the host. In that example, if you use more than 2 cores in the VM, you will see steal time as the host isn't allowing the VM to use more than the processing power of 2 host cores.

QEMU need CPU for other tasks than just running a guest OS or applications, like managing disk access, network traffic, etc. Using cpulimit helps restricting a VM to use that amount of host processing capacity.
 
If you set cpulimit, the VM will never use more than cpulimit host cores, even if no other VM requires CPU time, so you are effectively limiting the VM processing capacity "unnecessarily".

My concept of "cpu over subscription" is more like "let's give every VM a little bit more cores so when they eventually need it they can execute more processes faster and let's hope that not every VM will require all their cores at the same time. And if that ever happens, I would use cpulimit and/or CPU units to prioritize some VMs over others".