My system does it like this.
/bin - static linked basic user commands
/sbin - static linked system commands (incl. important daemons)
/usr/bin - dynamic linked user commands
/usr/sbin - dynamic linked system commands and system daemons
/usr/local/bin - user commands installed via package
/usr/local/sbin - system commands installed via packageSo, I suppose it's really both. The statically linked shell would allow you to upgrade the shared libc, for example. Which is both "system" and "static" related.
edit: Clearly I'm missing something in the linked article because I'm being downvoted. Could someone show me what I'm missing?
I don't know what the correct historical explanation is. "s" like in super user, system program or statically linked or is there yet another theory?
"Understanding the split between (/bin, /sbin, /lib) and (/usr/bin, /usr/sbin, /usr/lib)"
Not perfect but maybe clearer
So sbin is reserved for system binaries concerned with booting, administrative tools, repairing/restoring (the system), and the like.
Since these essential utilities by their very nature require superuser privileges, it's tempting to think that sbin simply means "superuser binaries" or something.
Someone else mentioned "statically linked", which is also true, but again just a side-effect of being for system programs. The programs in sbin need to be able to run without /usr, /lib, or /bin being mounted or even existing is the idea here.
To me personally - and this is just my uniformed(!) opinion - the only split that makes sense across all circumstances is /bin vs /sbin and /var vs /. Simply because anything but /var could safely be considered read-only, while /var exists explicitly for writable data ¯\_(ツ)_/¯