Well, if one module depends on "jre9 and another depends on jre10", then jre9 will be used by Maven.
That would only happen if both the jre9 and jre10 versions specified were the same release version. A later jre9 release would still be picked over an earlier jre10 release as the release version is on the prefix.
Sure it looks ever weirder but it does have the advantage of sorting properly. From a feature perspective, a newer JDK version would be considered a superset of an older JDK version (as it'd sort later). We would still need to switch to a double digit to ensure proper sorting.
Here are some examples:
* jre07-9.4.1207
* jre08-9.4.1202
* jre09-9.4.1204
* jre10-9.4.1205
With this setup the JRE comes first so the newer JRE-based driver version always wins. That would fix newer JDBC features mysteriously disappearing when a dependency adds a newer driver version for an older JRE.