Es ist sogar sehr erwünscht. Gutes Design forciert immer die Wiederverwendung, soweit dies (sinnvoll) möglich ist. Hierzu gehört auch, dass Du natürlich möglichst ein Modul/eine Komponente verwendest, die zentral und einmalig bereitgestellt wird.
Das Wort Komponente kommt aus dem lateinischen "componere" oder so ähnlich (zu faul zum Googlen), heißt jedenfalls Zusammensetzen. Das Ziel ist es eine Anwendung aus verschiedenen Komponenten zusammenzusetzen. Die können sich selbst wieder aus verschiedenen Komponenten zusammensetzen...
Spring detektiert zyklische Abhängigkeiten und würde Dir einen Fehler melden, das lässt aber auch auf schlechtes Design schließen, auch wenn die Abhängigkeit indirekt entsteht A -> B -> C, C -> D -> A (A hängt indirekt von C ab und vice versa).