UPDATE 2:
https://www.nuget.org/packages/NHibernate.Linq.InnerJoinFetch
Enjoy!!!
UPDATE:
I finally managed to do this and sent the followign pull request to the NH team
https://github.com/nhibernate/nhibernate-core/pull/210
In Fact, it is possible but you need to hack NHibernate, the line to change is this one
tree.AddFromClause(tree.TreeBuilder.LeftFetchJoin(join, tree.TreeBuilder.Alias(alias)));
into
tree.AddFromClause(tree.TreeBuilder.FetchJoin(join, tree.TreeBuilder.Alias(alias)));
at the ProcessFetch.cs file
It seems the behavior is hardcoded for Linq and I think its because its using the extension methods in order to send what to use for the DefaultQueryProvider and re-linq processing, I still need to figure out how to specify the kind of join you want to do on eager fetching using the linq api but I'm working on it, hopefully I'll send a pull request to the NH team so they can put this into the codebase, for now in my project I'll use my custom NH version