Is the FileFolder to Document association the only one you want to be lazily-loaded? What happens if you put lazy="false" on the other associations, as well as fetch="join"?
Alternatively, if you know at query time which associations you want eagerly loaded, just write several named queries and choose between them:
Code:
<query name="FileFolderLazyLinks">
from FileFolder ff
where (your conditions here)
</query>
<query name="FileFolderEagerLinks">
from FileFolder ff
join fetch ff.Documents ds
join fetch d.LinkSets lss
join fetch lss.LinkSet ls
join fetch lss.Document d
where (your conditions here)
</query>
Etc. etc.