Scrum / Agile can have failure points both technically (code/development) as well as socially (requirements/planning). It sounds like you've seen a lot of social failure points in your experience. I would hate to address all your complaints point-by-point, but I'll address the first which leaps out to me: that of a requirements phase prior to sprint start. In the training I've gotten for scrum, there's an overriding…
"I want the blue button very, very badly." "no problem. it will take three of us the entire scrum" "my goodness, I didn't want it that much. Ok, punted."