One of the many issues with Spring is that abstractions it provides are extremely leaky [1]. It leaks frequently and when it does, an engineer is faced with the need to comprehend a pile of technology[2] that was supposed to be abstracted away in the first place.
This is the best I can do for rationalizing Spring.
Also Spring is a kind of franchise or brand, and the individual projects under the umbrella vary a lot in quality.
Spring has more “synergy” in a sense than using a bunch of separate libraries, but because of that it’s also a big ball of mud that your code sits on top of, but isn’t on top of it in the sense of being in control.
But all in all, it's a great set of frameworks in the enterprise Java/Kotlin space. I'd say it's that synergy, which makes it worth the while.
I'm curious, though. Is the use of dependency injection part of the portfolio of criticisms towards Spring?