I almost got it working. The only problem is registering WCF services in AutoFac needs also setting
AutoFacServiceHostFactory.Container to the current container.
Normally, you'd just add your registrations to the builder, and call AutoFacServiceHostFactory.Container = builder.Build().
When i do call builder.Build in my Module.Load method, Orchard throws lots of errors. I assume that building container at this moment prevents further builder modifications in other parts of a system (eg. adding type registrations).
So the question is - how to access the current instance of AutoFac.IContainer that Orchard is using? ContainerBuilder seems to be the only thing available in Module.Load method, but it lacks any reference to the current IContainer (besides the Build() method).
Guys, maybe the AutoFacServiceHostFactory should be setup at the Orchard startup (AFAIK GetHostContainer method in OrchardStarter)? It would make adding WCF services as easy as implementing IDependency + adding appropriate service routes...