It's only "modular" in the sense that it's split into lumps. They're still dependent on the systemd core and one another, and all rely on the systemd common libs, often for no reason other than because poettering and co wanted them to in order to force the use of systemd. There's literally no reason for device management, user management, or a whole host of other things to be systemd "modules". The only reason they are is because poettering wanted more control.
When I said modular I meant, They are seperate programs. And they don't all need to be used. And they often aren't. And you can still you the normal programs you would use if you weren't running systemd.
like grub instead of systemd-boot. openresolv, unbound, or whatever you want instead of systemd-resolved, cron instead of systemd timers. whatever syslog implementation you want instead of journald, No one even uses run0, and a lot of the other things included. You can disable basically everything extra, that's systemd and replace it with something else. The only things that you can't really without loosing some functionality. Because there isn't really a full featured replacement yet is logind. Which people just rip out and use without systemd on non-systemd distros. and also udev. Really dbus too. though depending on what you are doing that won't matter too much. Really depends there.
The real problem. And why other init systems are losing this. Is because systemd makes things easy for the user, and for developers. For users it's just all there, it tends to just work. They don't need to learn about everything they have to install, and set up to have their system work like they expect. It does some things better than even the alternative init's I like. Like user services. And for developers they get a common interface to work with. If they need to make a service for something, they can just make a systemd one, and their program will work on most systems. If they need something to hand communication they can just have dbus do it, or session handling, they can rely on what logind is doing. It simplifies getting some things working across linux.
What I hate is how much it was forced. Much like the way pulseaudio was forced. And that's why I don't use systemd, I don't even use pipewire or pulseaudio. (really funny how you don't hear people complaining about pulse, but still do for systemd). Pulse was made by them, and they did the exact same thing.
There isn't a real replacement for a lot of the systemd stuff that most users would actually want to use. There is turnstile. But that isn't really completely there yet, consolekit, but I would rather just use elogind at that point. As far as I know there isn't any proper replacement for dbus. And I'm not sure it would even make sense to try at this point.