Antes de nada especificar que se trata de un proyecto con Spring Boot. Al grano:
Para evitar dependencias cíclicas, se pueden/deben inyectar otras clases de la capa de servicio en otro servicio o debería trabajar siempre sobre los repositorios?
Voy a poner el ejemplo del caso con el que me encuentro:
Tengo dos clases: GameService (GS) / PlayerService (PS)
Desde PS quiero obtener un Game y comprobar que existe, llamo a un método de GS que me sirve partidas y viceversa, desde GS tengo un método en PS que me sirve jugadores.
En este caso sería mejor pedirlo al repositorio, a pesar de que en estos métodos de la capa servicio ya tengo las excepciones controladas (Juego no existe, juego finalizado...), evitando código boiler plate?
Espero haberme explicado, que aun estoy un poco verde...