What are the implications of having a canonical package structure?
Many. We will elaborate on this soon. The short answer is that you can understand the end structure and result to be produced by the development effort independent of particular sequences in which the work is done to populate that structure. There would be very different “routes”, or work-breakdown structures, for projects which built everything from scratch, or did heavy reuse of existing components and frameworks, or were built by outsourcing the development of well-specified sub-systems to multiple sub-contractors. More fundamentally, there are many mini-“patterns” of package structures themselves i.e. Catalysis “frameworks” of package structures. These cover structures for separating interfaces from implementations, defining refinement models, incorporating existing or legacy components, and dealing with incremental development.