Design nested templates that focus on core functionalities and allow you to put entire stacks together. Do NOT develop nested templates with the focus of a specific system.
For example, you could create a nested template for the network components of a specific stack. Once you apply certain specifics you will not be able to reuse it, you may be able to copy&paste, but then you suddenly have multiple instances of pretty much the same to maintain.
Design CloudFormation templates with the idea to make them 100% reusable and then assemble them in your stack with the required customization using resp. parameters.