from AUTODESK REVIT MODEL CONTENT STYLE GUIDE:
A nested family is one that has been loaded into another family. In some cases, it can be convenient to represent parts of the nested family separately from the main family model. For example, you could create a window sill family and nest it in a window family. This allows you to build upon previous work while creating families suited to your needs.
IMPORTANT: It is important to understand that nesting families increases the file size and affects performance, specifically the regeneration process of the family views.
Instead of nesting, consider creating all of the necessary geometry in the family. Use reference lines and labels to lock geometry in place.
Limit nesting to 1 level - The deeper that families are nested, the longer they take to update in the project file.
Only nest high-value content that may be used in several different families, such as a door handle.
Be careful when changing a nested component that is shared by more than one family. When you reload the component into the project file it will update all of the families in the file sharing the same nested family.
Each family has a Shared parameter found under Modify > Properties tag, Family Categories and Parameters.
When set on a family nested into another this family will schedule as if it is a seperate family.
Nested families can be a different category to their host family. When using shared families make the host family a different category (e.g. Generic Model or Furniture System) so that the host doesn't schedule along with the nested families.
There are restrictions on families that are shared:
You can not assign Type parameters to another parameter, only Instance parameters.
You can not replace an existing shared family with a non-shared family of the same name.
You can not have a shared and a non-shared family with the same name in a project. If you have two versions of the same object, one shared and one not, they will schedule as seperate items.
When loading shared families, if a version of one of the families already exists within the project, you have the option to use the version from the project or from the family you are loading. But be aware the one in the project may not be shared.