The actual redirection of forms is handled by drupal_redirect_form:
http://api.drupal.org/api/function/drupal_redirect_form/6Which looking at the code, passes the $form_state['redirect'] to drupal_goto.
drupal_goto has a second argument for the query string, so I think the end of your form submit function may want to look something like:
drupal_set_message("going to $r");
$form_state['redirect'] = array($_GET['q'], array('query' => $r));
drupal_set_message(print_r($_SESSION, true));