Thanks for sharing your experience. I too have had (way) more bad ones than good.
I was hesitant to list "Treated me as a friend", but that is a quality I've noticed in good managers and emulated as a manager. It was a double edge sword. On one hand, it gave me the ability to build trust and get things done. On the other hand, it made firing that much more difficult.
However, IMO that isn't a good enough reason to distance yourself from your subordinates. I've had many difficult conversations without hiccups and didn't have to sugarcoat them.
At one company, part of the executive team and HR disliked the fact that I was close to everyone in my org. However, it shouldn't matter as long as one can get the job done. I'm not talking about being best buddies, but there's no need to be superficial either.
I've done this as a CTO and as a manager in other roles.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.