You must subtract shared from resident to determine how much memory has been "eaten".
Journald uses mmap() for random access within the journal files. These pages are accounted for as shared because they are file-backed and may be paged out by the kernel behind the scenes if memory is needed - they'll just be paged back in from the filesystem if accessed later by journald.
I've currently one machine that hangs on reboots because systemd is unable to shut down some service and another that gets its journals corrupted periodically.
I just built a headless armv7h system (using Arch Linux ARM) with 1GB of RAM, and after being up for 3 days running nginx, ssh, and some other bare services, the total RAM usage, for all applications, is 70-100MB. Systemd is complex, but it really doesn't seem to add a lot of resource drain for the power it give you... I'm happy with that tradeoff.
My reasons aside, I'd think a more sensible question would be "why would you actively avoid using the init system that's shipping by default on what constitutes at least 90% of the Linux server market when you're using Linux?". I don't think eyes equate to quality and stability, but I do think Red Hat, and SUSE, and Canonical and Oracle selling server solutions using it will.
My guess: because the "another application" that parses nginx_enable=YES is a (rc) shell script instead of an ELF blob, so you can track its execution.
Moreover, that shell is, on some operating systems, only one of the parsers. OpenBSD, for example, introduced a rule a few versions ago that rc.conf is not shell script. It is a set of key=value assignments that can be written and read by other programs too, not just by a full shell parser and not requiring a shell script parser.
One such program is rcctl. Another is FreeBSD's sysrc.
That's true of both plain-text configuration files and Windows Registry keys ;-).
... and then 223 lines of actual scripts, since those two lines in rc.conf merely enable/disable the services and do not denote how to actually invoke them. (Equivalently, the systemd people could say that they need just two symbolic links, one for enabling each service.)
% wc -l /usr/local/etc/rc.d/nginx /etc/rc.d/sshd
136 /usr/local/etc/rc.d/nginx
87 /etc/rc.d/sshd
223 total
%
... and of course another 2090 lines of shell function library for those shell scripts to rely upon. % wc -l /etc/rc.subr
2090 /etc/rc.subr
%
Mewburn rc is a fairly elegant system in comparison to van Smoorenburg rc (although it has its fair share of exceptions, sometimes quite bad ones) but it does not involve only 2 lines.You can already run Debian without systemd today. There's absolutely no need in the fragmentation Devuan creates.
I am not under the impression that Debian strives to make progress on the systemd-less use case, it seems more like a minimally supported mode.
But it's not something I've investigated, so take that with a big grain of salt.
While I still prefer to run Linux distributions with systemd (NixOS and Arch in particular), I'm increasingly worried about the complexity systemd brings in.
I like how clean and standardized the init process is now. I don't like the bloat prize we've paid, though. I've been stracing my workstation for a few days. Journald starts eating a ton of RAM, ~100 MB upon boot, and keeps growing.
I'm annoyed because systemd developers claim 100 MB is normal. It's not, that's my biggest process on startup. And on my other Arch machine it stays at 25 MB, and they have a long history of memory leaks.