After doing a good amount of development work in CRM 2011 I have to say I am impressed at how much more powerful it is than CRM 4, there are a lot more out of the box features that are useful to developers and users alike.
There are some strange restrictions that if you run into, a generic error message will pop up with no details on what the error is (when dev errors are off of course). One that I ran into: if you are trying to create a dashboard in CRM 2011 and are getting an error “Unable to retrieve etc etc..” check to see how many records it is returning. There is a built in limit of 50k. In my case I chose to use strategic filters to limit the amount of data returned, but there are ways to manually lift this restriction.