The historical Java patterns of factories of gizmos modified by adapters on adapters etc. really makes the large codebases miserable to work on. Along its enterprise lifespan it picked up all the fad modelling/project jargon/pattern nonsense (which as you rightly say were there to limit creativity) and that is now embedded in codebases. It might be that a new Java enterprise application started from scratch would be lovely, but those are rarely seen in the actual enterprise world.
I don't think it was ever uncool because of the core language, it was always uncool because of the standard libraries, UIs and culture.