Let me say this. I have found scrum in particular to be used as a management tool (report back tool), and not a developer tool. It doesn't matter where i go. It starts with the greatest of intentions, and ends up where management are sticking there fingers in the pie half way through. And by that I mean they don't use priorities on the backlog to manage the process. They use the standup meetings as a moan session when things don't go there way. To me scrum in its purest form is where the developer drives the process. Most projects will perform better if they just let them do that.
Agile is a management tool. It helps manage developer time, feature bloat, organizational blocks, communication overheads and user expectations. It also helps you measure performance and identify bottlenecks in your own process. Like other comment said, it helps getting a couple things done instead of having a huge pile of stuff half done.
Look at what Agile is promising to fix. The development process not the management process. Semantics aside, I like everything you said, except to say that either the line manager is doing those things, or 'it' (scrum) is doing those things.
Managing the things I mentioned fixes a lot of problems common to broken development processes. [Insert your agile method here] provides a useful framework upon which to build a working development process.
I disagree. I've met a LOT of developers who believe they know more than the customer, the QA team, the UX team and the DBAs. And they are, most often, wrong.
I think it takes a special sort of programmer to run a project to be honest. They are out there, but they are hard to find!