Имеется ввиду требование отсутствия циклов в графе использования модулями определений из друг друга.

Это - не только техническое требование, а концептуальное: все определения абстракций в системе должны разделяться на слои (т.е. некоторый слой пользуется только теми средствами, которые определены в нижних слоях).

Это касается графа использования понятий, так сказать. А граф использования функциональности может быть и цикличным (за счёт динамических связей).