I've attached a DetachedCriteria replacement/extension that deals with duplicate association paths, as long as the join type or alias is the same. Otherwise the same exception as usual occurs.