My somewhat limited understanding of sbt (developed largely from seeing it in action from some simple usage with previous projects) is that it uses the 'lib' and 'lib_managed' to lookup/store code for dependencies. I'm developing code just for my own use at the moment (hopefully that will change), and it's quite alright if I, say, upgrade to Scala 2.9 and find that it breaks some of my projects--since I'm not developing in the enterprise and everything is still pretty small and non-critical, I can just fix problems as needed. For me the $SCALA_HOME env variable points to /Applications/scala, which is a link to the 2.8.1 distribution; when 2.9 final is out, I will simply swap in a link to the 2.9 distro.
Because of this setup, I'd actually prefer for most of my projects that sbt pick up libraries and use tools from $SCALA_HOME if they exist there, use scala-test from a standard location on my filesystem, and be able to pick up java libraries from the standard java extensions directory on my system (OS X). This wouldn't be very good for large-scale development, but for most of what I do, it would be fine.
Any comments welcome,
Thanks,
Ken McDonald