Mark,
In addition to what David has said;
1) If a formset is to contain a form that other fomrsets also need, you can't use the same form. You nedd to duplicate the fomr in all formsets that need it instead of just calling the form you need.
2) In most formsets I have seen the first thing that happens is to hide a bunch of forms. By using separate forms you don't hide anything because you don't create the form until it is needed.
3) Formsets must create all contained forms even if the user will never visit some of them. This takes time and I prefer to have the user wait only for the forms that they are actually going to use.