But, I prefer to find a balance in the middle, one that allows some of the freedoms of coders in a cave but with the feedback and guidance provided by the parts of the company that matter.
Wow. You're awesome. Shame the developers aren't one of the parts of the company that matter.
4. Do not promote your best developers to be managers...
I mostly agree with the list you've written, except for this part. It a) implies that a management role is more important rather than just a different role in the greater team, and b) you'll lose your best seniors if you don't give them a career path beyond just cutting more code.
Until organisations get over their manager > "resource" mentality they're doomed to mediocrity (at best). Yes culture matters, but that's not so much a factor of giving devs a free coke or the tools they ask for, it's about respect, it's about the team (including the testeres, analysts, PMs, etc) and about the collective way things roll. It's more about them than it is about you.