1. MVC is better suited for implementing the sort of separation of concerns that we wanted to implement in Orchard. Plus, ASP.NET WebPages did not exist when we started this work. We are using the Razor view engine though, so the templating language is the
same as in WebPages.
2. We started with TFS/SVN when that was the only option on CodePlex, but immediately switched to Mercurial when that became available because we think that distributed source control works better for open-source projects.
3. When we started this work, EF did not have the code-centric model that we wanted. NHibernate had the best adequation of features with what we were trying to do under a very mature form.
4. mmh. Anything specific you have in mind?