I had a very similar "epiphany" when I was looking choosing a CM tool (see http://www.selesy.com/news/14). I'd add one reason to your list (and it's a biggie for me) - You don't have to install a client on every machine. Since I'm already using public/private keys for access, I'm ready to provision new machines immediately.
Recently I've been pairing Vagrant and Ansible so that developers' workstations are provisioned by the same playbooks that build the production infrastructure. This is a huge win as there's no variation in how someone set up their machine.
My next step is to use Cobbler to actually manage booting new machines and adding them to specific profiles (the phase prior to Ansible's CM role). In essence, cobbler provides the hosts file for Ansible.
Nice article and please share tips and tricks as you go!