Use Facelet templates (as in <ui:include> and/or <ui:composition>) if you want to split main page layout fragments into reuseable templates. E.g. header, menu, footer, etc.
Use Facelet tag files if you want to have a reuseable group of components in order to prevent/minimize code duplication. E.g. a group of label+input+message components. The major difference with composite components is that the output of a Facelet tag file does not represent a single UIComponent and may in some circumstances be the only solution when a composite component doesn't suffice.