I tend to think the distinction between "plugins" and "server-side mods" is a little pointless these days. I would consider something a "mod" if it's in an environment where it can deeply touch Mojang code and completely transform it if needed. And before we ever had Fabric/Sponge mixins, we had reflection and ASM for doing just this. We still have that, and a lot of Paper plugins make extensive use of reflection - particularly libraries that reflect into netty to hook directly into the protocol are quite common.