This doesn't look like a complex XPath at all, are you certain this is the problematic retrieve?
Some general tricks:
Your query would then look like (and set indexes e.g. at Status, RequestDate and AmountForAssignment):
[Status != 'Aangevraagd']
[Status != 'Concept']
[RequestDate >= $AssignmentRule/SourceDate]
[AmountForAutoAssignment <= $AssignmentRule/ScaleMaxAmount]
[AmountForAutoAssignment >= $AssignmentRule/ScaleMinAmount]
[Dossier.DossierCategory = $AssignmentRule/Dossier.ApplicablesCategory]
[Dossier.DossierSubCategory = $AssignmentRule/Dossier.ApplicablesSubCategorySTP]
[Dossier.DossierObjectType = $AssignmentRule/Dossier.ApplicablesObjectTypeSTP]
[Dossier.DossierCommissionerItem=$ComissionarItem]
[Dossier.DossierEstimatedDamage/Dossier.EstimatedDamage/Dossier.EstimatedDamageCausePrimary=$PrimaryCauseItem]
[Dossier.DossierAssignedExpert/Dossier.AssignExpert/Dossier.AssignExpert_Relation = $Relation]
How many statusses are there? Maybe use (Status='a' or Status='b' or...) instead of useing !=, so the index can be used.
Is RequestDate indexed? With second attribute AmountForAutoAssignment and third status?
Which entities contain a lot of data?