Hi Darek,
I’m not personally aware of any limitation for the number of sections in a template (and there shouldn’t be any as far as I know), but I don’t believe this has been really tested either. YMMV on that one.
In terms of what’s best for you, it will depend on a few factors of course, which come down to performance, maintenance, and design capabilities. So let’s explore this a little more into details - the advantage/inconvenients of each possible method.
First, what about one template file per design? You can still have a single data mapping configuration, but use separate template files. This method is best if you’re not sharing any design elements or resources - if none of your images are shared, if there’s no similar contents, no shared stylesheets, etc. The advantage here is that when producing output you’re only loading a single template that’s smaller and simpler, thus performance is better. It also means if you want to version things, you have access to the history of each template separately, not just one huge file with lots of contents.
Second, you have the idea of one section per design. This is useful if you have different requirements for Master Pages and Medias. Each section’s Sheet Configuration needs to be set for First/middle/Last/Single sheets with identical or different Master Pages and/or Media configurations. Margins and page sizes can also be different. You don’t necessarily need one section per design though - you could just as easily have specific configurations (like one section for letter documents with single pages, another that has Legal page size with multiple pages, etc) that you call upon dynamically using Control Scripts. Then the contents of the section can either be conditional text, or snippets, depending on your needs.
And last you have the idea of one snippet per design. Great if only the contents changes, but the design surrounding it (aka, the page size, margins, headers/footers, etc) is identical for each of your outputs. Snippets are the only method by which you would be able to load your contents dynamically from an external location, since Sections are internal resources only. However, it can also be the slowest. Accessing contents externally using loadhtml() is certainly not as fast as Control Scripts simply showing a Section. And if those snippets are external then you have to consider disk I/O (and network I/O, if on a network share) as part of the overhead.
So in short, it depends on the design needs, as well as performance. Unfortunately we don’t really have any benchmarks on either of these methods, so what I’m telling you here is pretty much an educated guess. In my personal opinion, having 100 snippets in a single template would be much harder to manage - only one person could update the document at a time, the performance is relatively worse than one template per design, etc.
And lastly, speaking of versioning: There is no integration to any CVS in our software. However, you could easily use git, svn, mercurial, or any system you choose, on the files used by Connect (templates, data mappings, etc). For the demo files produced by the training department we generally use bitbucket, since you can have a free private repository there (unless you have your own server, that is).
~Evie