In java, this makes sense. There's a single naming context for the entire class regardless of static or instance exposure. ES doesn't have such a restriction. Since functions have always been first class objects, and instances are separate objects, they have separate naming contexts.
Further more, TC39 opted to relax this even further in the creation of private fields by putting private names into yet another context all its own. But for whatever reason, instances are being forced to share this 3rd context with the constructor. Doing so breaks the common usage expectations in ES.
--- WARNING: Rant
I get comparing how ES works to how similar things work in other languages. This is good practice. However, adjustments need to be made when importing concepts from other languages so that the imported concept conforms to the nature and base features of the target language. TC39 has failed in many ways on this front where this proposal was concerned. To claim that this was the best solution they could form a concensus on seems to speak more of the internal politics of TC39 than to the limitations of the language itself, especially in the face of the fact that there are several alternative solutions crafted as libraries in ES, some of which I wrote myself, that work using different mechanisms and achieve results more consistent with both the expected behavior of class in other languages, and the nature of ES itself.
--- End Rant
But what's done is done, right? All we can do now is try to correct for what can be corrected before there is too much entrenchment around the damage.