TL;DR summary of this post: Bad software practices from the historical Eclipse
team (IBM I guess?), has left it with a lot of technical debt, and quite
a bit of functional debt too.
To blame the current state of Eclipse on "Bad Software Practices" from 15 years ago is a rather simplistic way of thinking. I was not working at IBM, so I don't take this personally, but I remember Eclipse being a praised a exemplary model of Software Development.
When Eclipse started, there was no Maven. Eclipse pushed for MAJOR.MINOR.BUGFIX version numbers (and built tools to enforce this) long before Tom Preston-Werner penned the spec for Semantic Versions. Eclipse lead the way with both a development time and runtime modularization platform that focused on API compatibility between components. Eclipse shipped, on-time, every-time, for 15 years. Eclipse Delivered.
When Eclipse started, there was no GitHub. When Eclipse started, there was no StackOverflow (we got our answers from Java Lobby and JavaRanch). When Eclipse started, the concept of small, reusable, open-source components was practically non-existent. Criticizing Eclipse for not bundling the components in a different way, to support the different use cases that we see today, is a simplistic answer to a complex problem.
We can all point to a design flaw in bundle XYZ. We can all complain about a 12 year old bug that bothers us. We can all criticize some aspect of the UI. But blaming the development practices of yesteryear is unfair to those who worked very hard to ship Eclipse.