В общем смысле избегание цикла не указывается c для составного паттерна. Например, в книге «Банда четырех» ничего не говорится об этой проблеме. Это действительно зависит от клиентского кода, чтобы гарантировать, что составная структура является acycli c.
При этом на практике для шаблона Composite обычно нет необходимости совместно использовать объекты Composite. Поэтому ограничение, которое гораздо проще проверить, состоит в том, чтобы предотвратить добавление Компонента, который является составным и уже содержится в структуре.