Circular dependencies are fairly common. Some examples:
- A table references itself when implementing the "adjacency list" hierarchy.
- Two tables reference each other when implementing the 1:1* relationship.
- Two tables referencing each other is one of the possible implementations for the 1:N relationship (where one of the rows on the "N" side is "special").
- Furthermore, I've seen situations with multiple tables forming a "ring"...
So yes, it is "OK" to to have circular dependencies.
* Strictly, a true 1:1 requires deferred constraints to solve the chicken-and-egg problem (which are not supported in MySQL), otherwise you can only have 1:0..1 or 0..1:0..1. But in all these cases, you have two tables referencing each other.