The referenced GCP code is from the kube-up installer.
It assumes that control plane components will be statically installed rather than being scheduled.
Without the scheduler the concept of DaemonSet is essentially meaningless.
I suspect you're right that at some level this is related to the CCM's KCM history.
I'm not an AWS expert but I suspect it has to do with a desire for control plane components to have HA.
CCM like the KCM uses leader election when there are multiple instances running to ensure HA.
1 instance is the current leader and the rest of the instances should be in hot stand-by mode.
It is also desirable to ensure that each CCM instance is running on a different Node.
My guess is DaemonSet was seen as a quick and convenient way to achieve this.