Depending on a specific published version of the current project

I’m trying to add a configuration with a dependency on an earlier version of the current project in order to backwards compatibility testing. Whatever I do, the dependency ends up being resolved using the project itself.
Example code (not real):

group = 'a.b'
version = '1.0.0'
name = 'c'

configurations {
dependencies {
    testConfig 'a.b:c:0.9.0'

but the output from “gradle -q dependencies --configuration testConfig” is:

+--- a.b:c:0.9.0 -> project : (*)

which of course is a.b:c:1.0.0. I’ve tried making the dependency ‘strictly’, forcing it, using dependency substitution rules to replace the project with the module, but nothing seems to make any difference.

Has anyone else seen this?
(Gradle 5.4, using the java-library plugin)

Partially answering my own question: this is pretty much working as intended. From the gradle composite build docs:

and substitute project dependencies for any external dependency matching ${}:${} .

i.e. project.version is ignored when substituting included builds for dependencies. This kind of makes sense I guess, but it would be useful to be able to override it.