Given all the rationales given by Russ and Micheal, I think we should drop the idea of having "smart dependencies" for the moment being (I suggested that because, in my ignorance of Java, I thought they would be easy to implement).
Instead, let's start implementing something *correct*, in line with the Java philosophy, and with a clean API. We'll think about enhancing it when (and if!) the need arise. Thanks, Stefano