The Marines think about leadership very differently than that. Sure, parts are authoritarian, but most people are surprised to learn that training to be an independent thinker starts in boot camp. They don't even tell you how to "swab the deck," you are provided the tools and given the direction that the floor has to be spotless. Regular inspections provide continual feedback, and out of that recruits routinely develop their own procedures and novel techniques for mission success. (Did you know newspaper is extremely effective at finish polishing windows?)
Leadership is pushed hard at every level. If two Marines are on a job/mission/taking out the trash, even if they are the same rank, the one with more time is expected to take responsibility for the other. It's not bossing around authoritarian style, it's as real as that other Marine's life is your number one priority. Leaders are expected to support mission success, not drive it. You lay out the parameters of what success means, and the Marines your charge should have the tools and support necessary to accomplish that task.
In the programming world, it means that I set out a goal post, where I want the team to get to. But then I make sure they have the time to do it (I often take distracting support issues or annoying bugs so the team is not hampered), and the tools needed to get there. If the team does not, I have failed.
Marine leadership doesn't do IC work, which is the major thing I could improve. But then, Marines have a whole lot more people than I do. :)