It is case dependent, but it most cases, you should avoid such designs.
We need more information about the relationship between the classes. I think, that you could resolf this situation by using the observer pattern or using return statements.
Example:
A contains B, C, D => in that case, B, C and D should not know each other
A contains B
B contains C
C contains D
D should not know A or B. In most cases D should not even know C.
MVC Pattern:
The Model contains raw data and do not need to call functions of the View or the Controller. If you need to observe the model for changes, use the obersver pattern vor this (event listener).
The View knows how to display the data and in most cases it uses the observer pattern to get notified, when the model changes.
Each Controller knows his View and cann call method of this view. The Controller also knows the model and can change the data.
M does not contain direct references to V and C
V can be an observer of M and it is possible, that V knows C
C can call methods of M and of V in most cases V is calling C and C is calling M.