Can you provide more details? Are you talking about algorithms like modular decomposition[1]? Any specific challenge you'd like to see addressed in the following years?
If you look at real code, often the main reason why this routine was added to this file... was that the programmer worked in this file last.
Is that a Good Reason? No it's a bloody awful reason.
An automated tool should be able to look at the network of declarations, definitions and references and work out which module each thing should be in.
It's a pretty great datastructure for writing code, you get automatic refactor everywhere.
If you're interested to take a look ping me, would love fresh eyes