I'm actually making the switch now.
Business Justification
The business justification for making the switch is that it's 'too easy' to make binding (no pun intended) design decisions in Webforms development that keep the application from being easily extensible or from changing one of its features without throwing the baby out with the bathwater.
I list some of those things below.
Maturity
I consider the spirit of MVC to be mature, but ASP.NET MVC is making its progress. I don't think it's fair to call it mature when it's not been out over a year yet.
It's a whole new world, as they say. The paradigm shift itself takes a lot to get used to, and the common practices (I wouldn't call them 'good' practices) of ASP.NET webforms development are essentially chucked out of the window. For instance:
- Binding a Dataset or DataTable to a DataGrid (no layers)
- Forcing 'tiers'. There aren't quick and dirty solutions (well, there can be, but that defeats the purpose of MVC, doesn't it)
Productivity
It's learning a new paradigm, so it really was a logarithmic curve.
Pitfalls
Being forced to not rely on some of the bread-and-butter controls made it tougher, but when it finally freed up the UI layer to change on a whim without the underneath being affected? That made business decisions easier.