When a supported reflection pattern references an assembly that is part of the linker input set, but not in the reference closure of any roots (and thus not loaded into the LinkContext assemblies by LoadReferencesStep or any other step that comes before MarkStep), the pattern will fail to resolve. Since simple reflection patterns are often used for activation without a build-time dependency, this seems like something worth supporting. See dotnet/sdk#4017 for the original issue with a repro.
#843 is a similar issue where PreserveDependency doesn't cause xml roots from the referenced assembly to be processed.
If we fix this, we should be able to undo dotnet/runtime#32023.