Just a note, I was working on a monolith-plugin based off of the ZR/project base design, and finally I got tired of it and started from scratch.
Building everything into one single plugin can make things faster and "easier", but it really hurts maintainability and reusability. You end up with high coupling and loose cohesion.
Something that really inspired me to make a change was
ApolloRP. They have a very nice large SM project which uses multiple plugins+interfacing.
Now I'm starting from scratch, cutting dependencies, and creating a lot of useful plugins out of some once-monolith code. To tie all of my plugins together I started working on
LGOFNOC, a parallel configuration manager. So far it's working well.