IRequestCycleFactory and ISessionFactory annoy the hell out of me. We simplified how they are used a bit in 1.3, but imho, I think we should just ditch them all together in favor of simply two factory methods in application. Factory method newSession already exists in WebApplication (as that class implements ISessionFactory), but to create a new request cycle you still have to override getRequestCycleFactory().
Objections anyone? Eelco