Difficulties using pre-releases of swift packages

This is how I understand pre-release versions to work in SPM:

If package C has versions "1.0.0" and "1.1.0-alpha", and application A depends on C using .package(id: "C", from: "1.0.0"), only version "1.0.0" will be considered valid. However, if A specifies .package(id: "C", from: "1.0.0-alpha"), both versions will be valid. Additionally, A can specify .package(id: "C", exact: "1.0.0") or .package(id: "C", exact: "1.1.0-alpha") to get either the stable or pre-release version. So, if A currently uses .package(id: "C", from: "1.0.0"), it can temporarily change to .package(id: "C", exact: "1.1.0-alpha)" to test the pre-release version.

However, this gets trickier if A also depends on package B, which in turn also depends on C. If B specifies its dependency on C as .package(id: "C", from: "1.0.0"), this prevents A from using a pre-release version of C. If A tries to use .package(id: "C", exact: "1.1.0-alpha"), this will not get resolved, as B does not allow pre-release versions of C. For that to work, B would have had use .package(id: "C", from: "1.0.0-alpha)", which I think is very uncommon in public packages.

For git-based dependencies, this can be solved in A by specifying the commit to use, .package(id: "C", revision: "<commit of 1.1.0-alpha>"). By specifying a commit, any other constraint is ignored. So in this case, B's constraint on the version of C is ignored.

Though a bit inconvenient, this is mostly fine. However, when using package registries, the situation changes. If both B and C are distributed only on package registries, and A does not have access to the git repositories of B or C, it cannot specify a commit to use, but can only use version strings.

Am I missing something? Is there a way for A to override the constraints from B, to use a pre-release version of C? If not, has it been considered to add an override mechanism for this, similar to how .package(id: "C", revision: "...") and .package(id: "C", branch: "...") work? I'm thinking something in the line of .package(id: "C", preRelease: "1.1.0-alpha"), or .package(id: "C", exact: "1.1.0-alpha", override: true).