Completion for speed is not used for header sync, we want to see all peers, not just the fast ones. But with a strong header chain we just want the blocks as fast as we can get them. Dividing work up among a larger set of peers doesn’t increase load on the network, and rate management moves that load to where it is more available (load balancing). We will eventually make the total connection count more dynamic, so that it throttles back once the chain is “current” and back up again if it falls behind (eg after a shutdown period).