Wrt https://bugs.launchpad.net/asdf/+bug/502946, module is not recompiled if _intra_-system dependency changes, I have spent quite some time groveling over the source code to TRAVERSE, and I believe that this is going to be quite difficult to fix. There are a number of assumptions baked into TRAVERSE, and some complicated uses of a variable scoped over the body of TRAVERSE, together with a number of local functions and a soupcon of unstated assumptions.
I'm pretty sure that modules are substantially broken and, in the short term, I would discourage ASDF system designers from using them at all.
I have been banging my head on this for at least a working day's worth of hours, and I need someone with whom to discuss the code, either by voice, IM or IRC. Email is not going to be high enough bandwidth.
If anyone is interested in this enough to share the pain with me, please drop me a line and we can coordinate.
Thanks, r