Most of my pods have a CPU request >= 1 so more containers than cores is rare. But obviously that really depends on your workload(s).
I don't think the scheduler picking a different core matters much unless your workload is super cache sensitive. My point is more about access to single threaded performance. If you have a single threaded workload (ex: an ffmpeg audio encode) and you want it to be able to access as many cycles from a single core as possible, it isn't always as simple as request: 1
Also you said "a lot of workloads" so yes probably more containers than cores.