I’ve been using MVC since it was first released. My main reason for wanting to use MVC was due to the fact that SEO/page loading times is an important factor in the web applications I produce and I grew tired of other developers abusing ViewState within our applications despite my frequent explanations as to why 80k of ViewState on the homepage is unacceptable.
I wanted to make use of the Routing Engine for lovely RESTful urls as at that point in time I was using IIS7 for url rewriting on production but didn’t have it available on my dev machine. Using Routing meant I didn’t have to configure the rewrite rules again when deploying to IIS7 since the routes are in code within the application. A Routing Engine is now available in ASP.Net 4.0 Web Forms so you can easily switch from using QueryString parameters.
Note: you ask where you can store temp data such as page index, sort order etc. I commonly tag these onto the URL. This approach works with both Web Forms and MVC e.g.
http://example.com/products/1/asc
http://example.com/products/2/desc
When I first used MVC the immediate thing I noticed is that state management and validation takes more time to implement for user forms with many fields, checkboxes, drop downs etc. This WILL increase your dev time since you have to write custom code to retain state and if you want JavaScript client side validation you need to roll your own also i.e. no required field validators. ViewState is not evil and it is easy to minimise ViewState in a Web Form application. The developer who misuses ViewState is the evil one.
In summary many of the functional requirements you mention e.g. funky GUI features, url rewriting as opposed to query string parameters, calculations etc can be achieved with both MVC and Web Forms and from the end user perspective the website will look the same. The biggest thing that MVC offers is the convention of the design pattern. The reason I forced MVC within my development team is that I wanted the developers in the team to follow the same convention and thus allow us to pick up each others code more easily. What I also love about MVC is that it makes SoC (Separation of Concerns) much easier to achieve. You don't mention TDD (test driven development) in your post, but making TDD easier to achieve is something that MVC also brings to the table.