Why does Drupal jump back to the calling function after submitting a form? Dear Drupal community,

I am pretty much lost with the form listed below. When calling the form funnyform via the function funny_function (via the menu link 'Funny'), the form appears, and the word 'Fun' is displayed as I programmed. Now, when I click on the 'Resume' button, the word 'Submitted' is obviously displayed. However, the word 'Fun' appears as well. Apparently, Drupal goes back into this function once again! Now, this is very bad news because in my "real-life" this function contains additional programming code which is then run twice...

Can anybody please help me how to stop Drupal from going back there? And explain to me why it even does so??

Thanks and best wishes, Tobias

$items['funny'] = array(
  'title' =&gt; t('Funny'),
  'page callback' =&gt; 'funny_function',
  'access callback' =&gt; TRUE,
  'type' =&gt; MENU_NORMAL_ITEM,
);

function funny_function() {
  drupal_set_message('Fun');
  return drupal_get_form('funnyform');
}

function funnyform($form, &amp;$form_state) {
  $form['information'] = array(
    '#markup' =&gt; t('Nothing'),
  );

  $form['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Resume'),
    '#weight' =&gt; '100',
  );
  return $form;
}

function funnyform_submit($form, &amp;$form_state) {
  drupal_set_message('Submitted');
  $form_state['redirect'] = 'another_funny_page';
}
Where else would you expect the form to lead?

You can add ?destination=somepath to the URL, or a #redirect to the submit array, or a drupal_goto in the funnyform_submit() function, but if you don't tell Drupal where to go, it's just going to reload the current page.