I love middle-managers. It’s the one occupation everyone hates, but its sooooo important. They are able to keep focus, and make sure corporate pathologies don’t sink in. Plus, they’re very nice people.
I like chit chatting with the devs two floors up. They’re usually working on different projects, but facing all the same issues. Learning about the other teams around coffee or at lunch is fun.
I love the rumor mill. So and sos team is being split up. The manager that just resigned is starting his own company. We are about win a gigantic contract with the NSA. None of it’s true, of course. But it’s fun!
I like having an accounting department. We have these crazy accounting people who do all their work out loud, so we always know what they’re doing. I once heard then arguing over my paystub, so I walked over and asked if I could help. They were shocked I was real person and not some numbers on paper.
The politics are better when the company has a more formal way of doing things. Good companies have a cursus honorum.
At the end of the day I like big companies for the same reasons I like big cities: lots of people.
But I think your root mistake is in your measures of "performance". As a programmer you measure bugs fixed, features added, debt removed. Your manager though has different criteria (for himself, since he does none of those things) and some of his criteria bleed onto you.
Things like communication, documentation, co-worker relationships, priorities and focus, and so on. (for all I know you were excellent at all these.)
In my experience the most frustrated employees are where they want to play by one set of rules, but the organisation plays by a different set of rules. Funding the place where your ruleset match the organizational is critical.
I would wither in a place that was all process and little result. But I've also seen people wither at my office because there's a lack of formal process. Right person, right place, right time, is when the magic happens.