I’ve only had about two years of software experience, but my (junior) opinion is that I’d prepare to spend even more of my brainpower on political cagematch fights than usual, as non-hierarchical means my “equals” are going to start trying to intercept credit, take lead on things, etc. and position themselves as de facto managers without me being able to tell them “fuck off, you’re not my manager.”
It is said, "Success has many parents. Failure is an orphan."
Before you get into cage matches, engage with your colleagues respectfully and maturely, politely declining suggestions you disagree with, before rushing to cuss them out.
This can be headed off by not rewarding bad behavior in peer reviews/manager reviews. In addition, such behavior could be used to lay off the offending person.
Not that I'm a fan of completely flat organizations.
It should be noted that the right way to be productive in a flattish organization is to influence people - this is no different in a big company from a small company.