Steve, I think that only applies to conflicts within a given module's (transitive) dependency set. Looking at the ivy docs, I can't see a way to do multiple ivy:resolve calls in the same build. Performing a resolve will set some ant build properties and attempting to override these (e.g., by doing a base-hadoop resolve and then a contrib module's resolve) will fail. There's also no way to specify multiple ivy.xml files, nor is there a way to look at the artifact jars that (may) already exist in another directory (e.g., the ivy cache for the base-hadoop project).
I think that eventually auto-detecting these problems is a good goal, but I think for now the status quo of "contrib owners are responsible for dealing with their own version conflicts" isn't going to change. I don't see a straightforward technical means of dealing with this.