I would expect any production-grade software dealing with a dependency graph to have cycle detection. Why doesn't systemd catch this kind of thing and emit a clear error saying "dependency cycle detected in A -> B -> C -> A"? Especially in cases where those dependencies are statically known - it should be able to detect this problem even before starting the services. Is there something I'm missing here? Are there any cases where a cyclical dependency is a legitimate requirement?