IMHO the web created by stacking elements and associated functions to create resilience is one of the most vital parts of design.
If I may add something... Consider the dimension of time when designing your stacks. Time stacking allows us to expand our design functionality and forge even more layers of resilience in that way.
A simple example of this would be planting fast growing tree species as a pioneer to provide shade and shelter in which secondary succession is established. The pioneers are then cut back after several years and used as timber or firewood.
RE: Permaculture Principles – Stacking Functions and Stacking Elements