I would argue that loops in semantic dependencies are absolutely normal, and it is not a reasonable requirement to ask the user to avoid them. Even if loops are not allowed, they should be tracked automatically, not manually.
Topic on Extension talk:SemanticDependencyUpdater
Appearance