Quite frankly, in my experience with agile techniques, particularly SCRUM, the methodology negates most conflicts regardless of titles or roles.
Everyone has the same role: team member. That's it. Everyone has the same responsibilities: contribute to the success of the sprint. Work is picked up as necessary and the team dynamics prevent anyone from not pulling their weight, since it becomes painfully obvious on a daily basis at the very least.
The more seasoned team members have to step up when the going gets rough because that is what is expected. Less experienced or technically savvy team members learn and improve when the heavy hitters help out because mentoring is also part of the latter's job description and part of their responsibility to the team.
Not only that, but we have more code to review than most: production code, unit test code and subsystem test code (we have a very high percentage of test automation...very high). We all pitch in to get it done right. (Yes, the devs help QA without being pushed, shoved or threatened.)
We just completed a 2+ year TDD/CI/SCRUM project that was a huge success. Not only that, but we were the pioneering project with agile + SCRUM (4 distributed teams no less with 40+ participants across 3 time zones). No outstanding bugs and the customers are head over heels in love with the product.
Of course, to really screw up a project, just do agile + SCRUM badly. Do it right and it is amazing how well it works, even in code reviews.