I'm neither for nor against single-page applications. There are projects where single-page applications are perfect, and projects where they aren't. Here are my two biggest concerns with single-page applications:
Code duplication. You have to duplicate a lot of code and data modelling in order to make single-page applications secure.
This problem isn't actually inherent to single-page applications. It's conceivable that a single-page app framework could have you represent the validation steps in one place, and then automatically generate server-side and client-side instances of that validity check. Maybe some frameworks already do this.
State destruction is useful. In the traditional model, there's no state stored in the browser except for an identifying cookie. After each request, the client-side state is completely re-created from scratch. Constrast this with single-page applications, where one loaded page can have a lifetime of hours, not just minutes or seconds.
If you're going to have (non-security) bugs, it's helpful if they're on the server side. The environment is predictable since you created it, and you can debug it since you're in control of it.
These aren't reasons to reject single-page applications across the board. They're just more things to think about when you're deciding if you want to use a single-page application or not.