I, personally, have no problem releasing a new version of a library in a monorepo if it has no changes, for the sake of keeping everything at the same version. And publishing a lot of artifacts from a single repo isn’t a huge problem either, I manage a project that publishes nearly 40 artifacts each release. Just make sure you’re deploying from CI and you’ll never notice the deploy times.
And you’re use-case isn’t exactly unheard of, it’s a very valid desire. Some monorepo tools like Lerna JS handle this exact case, but I don’t think it’s the best DX for a single monorepo to contain multiple independent versions. My personal expectation is that a single Github repo has a single version which I can easily find at the top of the README, in a Changelog file, or in the Releases/Tags. If I have to hunt through your repo to find the version of a particular sub-library, then it probably should be in a separate repo. And that’s mostly the way Gradle is set up too, I can’t think of anything off the top of my head to manage independent continuous releases from Gradle. It’s set up to publish all subprojects at once, and you’d have to do some work to do otherwise in a monorepo.