A well-organized source tree is extremely important if a code base is intended to evolve and grow over time. If projects are meant to live in isolation as atomic entities that never interact with one another, there is little reason to have a strategy when it comes to source control; but if code reuse is a goal, then having a clear idea of how specific projects should fit together with common code is a must.
Organizing source code
Choosing locations for source files
Any piece of code that is likely to be used in more than the original project where it is first created should live in a common location (not tied to a specific project). Even if the code started out as being specific to one particular project, it should be moved...