This is probably SBT's greatest weakness and Gradle's biggest strength, relatively. I've never run in to this personally, probably because I'm use Nexus[1] as a repository cache. My understanding is that the underlying problem is a limitation of the dependency resolution library they use, Ivy[2]. Gradle used to use this but at some point wrote their own dependency resolution library. There are some improvements in recent versions of SBT but you have do a little configuration. See here[3] for more details.
[1] http://www.sonatype.com/nexus/product-overview
[2] http://ant.apache.org/ivy/
[3] https://www.typesafe.com/blog/improved-dependency-management...