The new CMake support was intended to make it easy for people to migrate from Projucer projects, while allowing users to write idiomatic modern(ish) CMake scripts. Before we added CMake support, the overwhelming majority of our users consume JUCE code through JUCE Modules, rather than using custom static/dynamic libraries, so this is the use-case for which we optimised.
Additionally, it can be dangerous to reuse the same JUCE object files across multiple projects if each project requires different module options. When sharing a JUCE static library between targets, you must make sure that all dependent targets use exactly the same set of JUCE modules and module configuration flags.
All of that being said, if you’re aware of the dangers then you could use an approach such as the one described in the following post to create a JUCE staticlib:
From there, it’s straightforward to make your own staticlib targets that depend on the custom JUCE staticlib.