Things like $ and _ will be defined on a global scale anyway. The `exports` sets require up to load them correctly for individual modules. For example, if we skipped `exports: "_"` for underscore the _ function is still available globally, but any module that includes underscore in its `define` call will be given an `undefined` object.

More importantly though, if we start dropping dependencies from module definitions we relax the dependency graph between modules and require's optimiser could legitimately build an optimised file with our modules in the 'wrong' order. For this reason I think we should continue as before

I don't see the backbone/Backbone inconsistency. Can you give an example? If you mean the lowercase "backbone" in `define` lists, you would want to change the definition in `config.js`.