I like using single template and just using logic in Liquid to do switching, however for users without programming experience it is a bit hard.
From my experience building templates for myself and few other people it is usually field value driving what to show.
ie IF Custom Field (Drop Down) Business Type == Shop THEN show shipping info ELSE nothing END
Same for switching logo etc. or document type etc
What if we could select custom fields/field within templates itself and set required values to show template so no logic is required within template, but we have multiple templates with conditions to show them
ie: On template you could have section for rules something like:
Just expose available top level variables in template like title, customer, etc + custom fields
Was looking for sample online and found http://querybuilder.js.org/ not sure if you can use that
That way one could download template from library and wire logic to show. Just suggestion.