This "stark division" might be inevitable, but here's a conceptual leap: developer system as part of a continuum. Right now source is edited in several dimensions, one being version control history. Perhaps another "runtime dimension" is audience. Like we do branches and pushes in Git, we can do promotions from dev to CI to staging to limited production to full production. Developer's server is just a production server with a different set of feature flags.
Hmm. Requires more coffee.
Three Deployment Styles:1) edit/run things on each server -- Fabric
2) system is a graph of properties, edit/adjust files/services to comply -- Chef/Puppet
3) each server booted from readonly "Golden Image", never update in place -- Immutable Infrastructure