This fixes a lot of your TODOs above. :-.)
The main TODOs are in the details -- using the delegate after that is the easy part. :-)
1) How to add this new RequirementDependencyItem (RDI) to existing Module's requirementDependencies? -- package protected
2) How to get the DelegateLoader from resolved Module / RDI? -- BaseCLPolicy::getExported? -- again protected
3) How add / remove this new DelegateLoader to / from host CLPolicy? -- protected, CLPolicy only has getter