Lets say you have a project file chef-dk.rb.

Inside there, you have:

dependency "test-kitchen"
dependency "berkshelf"
dependency "chef"

The assumption is, the majority of your build time is spent changing the top level dependencies - not the transitive ones. If berkshelf adds 5 deps, and chef adds 3 more, and you're going to do a rebuild to catch a new berkshelf - with the current method, you would build only two packages: berkshelf and chef. Without it, you would build 4 - chef *and* all its deps.