First of all, JUnit 4 is not modular. As depicted in the following picture, the architecture of JUnit 4 is completely monolithic. All the capabilities of JUnit 4 are provided by the junit.jar dependency. As a result, different test mechanisms, such as test discovery and execution, are tightly coupled in JUnit 4.
Johannes Link, one of the JUnit 5 core team members, summarizes this problem in an interview for Jax magazine on August 13, 2015 (during the inception of JUnit 5):