Optimizing reading poms in dependency resolution

Hi,
some times ago I have created an github issue (https://github.com/gradle/gradle/issues/8360) on dependency resolution and poms are getting read multiple times in one resolution cycle. As I could imagine you have other important stuff to do and I would need a solution for this issue. I tried an first naive prototype fix in org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.GradlePomModuleDescriptorParser where I could save 1/3 of the calls (4000 calls were taken from cache against 8000 calls, which missed the cache).
So I have seen bigdaz has noted, that this bug impacts every resolve for a file-backed repository (even mavenLocal I guess). So I’d like to provide a pullrequest at this point and wanted to ask -before I start - if a fix in org.gradle.internal.resource.local.LocalFileStandInExternalResource would be the right place? Can you please give me a hint were to store the cache data? Should I inject a service somewhere in org.gradle.api.internal.artifacts.DefaultDependencyManagementServices? Any hint is welcome to lead me in a direction, where the possibility to get this pullrequest merged is best. Thanks in advance

Markus