Since the client is involved in every sprint, any change of mind they have during the development process (and keep in mind that changes of mind are a virtual certainty in either case)is at least better informed than if the touchpoints were much less frequent (or as is too often the case in waterfall) all back-loaded towards the end of the project.
Does scrum eliminate crunch time? Of course not. But if it's done well, the impact is minimized because there has been so much more opportunity for course correction throughout the project.
Sure--the kind of communication that is ensured by a brief daily standup (communication within the team) and a regular progress review with the stakeholders, like say, a sprint review every few weeks (external communication).
While it's true that every professional understands the idea of priority, the global priorities of a project may be very different from the individual priorities of a developer. A diligent, conscientious developer can still get caught up in a narrow problem that doesn't really move the project forward, even after the PM has "made it clear what should be worked on." Fire-and-forget is not a strategy for project success. Continuous communication and regular reviews/resets are a better way.