Well and good, but now imagine a tornado comes and wipes all three away. Now you need to reconstitute your network, and you need to start with your Cobbler server, because you're about to kickstart a whole bunch of machines. You have to install the OS manually on that server, but then installing and configuring Cobbler the way you run it at your site is an item of "config setup," which you want Puppet to know about and do.

Cobbler can help you control your DHCP and DNS and get all of those machines and hostnames back, so it's a lot more concerned with low level datacenter bits.   I would want those services running first, before configuration management.   I would use Cobbler to install the OS that the config box runs on, just like I'd use it to install the OS that my package mirroring comes from.   Cobbler probably manages the mirror of the puppet repo itself, in many cases.   This is not hard to back up.

I would use cobbler replicate for disaster recovery purposes or include /var/lib/cobbler and /etc/cobbler for backup purposes to quickly get your config back.   Nightly backups should be sufficient, or you could do the git thing.