The concrete example I was thinking of was, in your terms, "a developer free for all".<p>As in there were checks and balances, but fundamentally any developer could decide to release to production at any time for any reason.  And typically this happened several times per day.<p>Incidentally my opinion is that rapid iterations in production and branching your code base are opposed decisions.  Why?  Because the whole point of rapid iterations to production is to make sure that your code and production are very, very close together.  But the whole point of branching is to make it OK for your code and code in other places (including production) to be different.<p>This shows up in practice in the complexity and potential problems that you encounter while integrating branches.  This pushes you towards a more lengthy verification/QA cycle, which pushes you away from rapid iterations to production.