There are advanced use cases for being to derive profile behavior at runtime based on the request content, and not just based on relying party overrides. Overrides can be decided dynamically, but if you need lots of them, or if you have overlapping criteria, things don't scale well.
In hindsight, we should have supported functional injection to produce a lot of the profile config settings. This is more difficult now because there's no explicit passing of the PRC into the getters of those settings.
I think we can facilitate this by leveraging Marvin's addition that makes the PRC available behind the scenes and add Function setters into the profile config classes we supply that let people override things.