Is there anything inherently wrong with mutually reliant custom modules? The custom modules on the main site I work on evolve.   I try to separate their functions and write multiple modules based on discrete needs but sometimes they grow into each other once written.

Now I have two modules that are inextricably linked to each other to the point where each of their .info files have dependencies[] = theothermodule in them to remind future site admins of this fact.

Of course I can undo this and separate the functions out, but thinking about it made me wonder why I should do it, and that advice on this topic might be useful here.
From wikipedia on "modular programming"


  Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules


If you have two modules, and they depend on each other, they are no longer independent, and in fact, are no longer two modules, but one.
At least in theory, that's a bad thing, because you can no longer make changes to one, without changing the other.

Sooner or later, you'll also likely find that this becomes a practical problem, because as the module grows, it becomes increasingly difficult to keep up appearances of an external interface. Both modules are calling functions in both modules, and again, you can no longer change one without also updating the other.