systemd тянет в себя все подряд и зачастую то, что к системе инициализации не имеет никакого отношения. Вдобавок дублирует и завязывает на себя то, что уже было написано, отлажено и работало без него.Если бы systemd позиционировал себя как отдельная ОС (типа как android), то критики было бы на порядок меньше.
Ядро включает в себя только то, что характерно для ядер и что нужно для работы с железом. При этом оно имеет гибкую систему конфигурации и может оставаться работоспособным в минимальной конфигурации. Излишней завязки user space за какие-то сложные подсистемы ядра тоже не наблюдается.
Большая часть подсистем и драйверов развиваются отдельными группами вне ядра (то есть фактически являются отдельными проектами) и лишь периодически синхронизируются с остальными подсистемами и сливаются в кучу для удобства пользователя. Также такой подход позволяет искать и внедрять новые конкурирующие решения, не ломая при этом старых.