I am creating a field which can be added to nodes to allow feedback to be sent directly from within some pages on a site. I'm using subform to embed the 'contact_site_form' form in the field, because I need to wrap it in a collapsible fieldset and add some other submit handlers to the form. The nodes are being displayed within Panopoly's Panelizer which seems to be responsible for the form being submitted four times whenever the submit button is clicked.

    $form['instantcontact']['form'] = array(
      '#type' => 'subform',
      '#subform_id' => 'contact_site_form',
      '#subform_file' => array('type' => 'inc', 'module' => 'contact', 'name' => 'contact.pages'),
    );

I found that the way to stop this happening is to add the following property to the subform element. Why this is necessary in this case is not clear to me from the documentation, but I tried it as one of many possible solutions, and this is the one that worked:

      '#submit' => array('subform_submit_all'),

Is the four-times submission (on subforms in forms in fields on nodes within Panelizer) a bug or is it normal for this extra property to be required? If the latter then the documentation may need to be changed.