Persisting URL params on form_set_error Scenario

I have a page which looks like 
  http://notfound.stackexchange.com?a=1&amp;b=2

After validation, i use form_set_error to display a drupal error message on the same page(url)
but end up without the url params 
  http://notfound.stackexchange.com

Question


Is there a way to preserve/persist the url params on form_set_error ?
Is using drupal_goto the correct way (since i can send the url params again) to redirect to the same page ?
hidden form elements to store the params for use on different pages in the process flow, but as a last resort if there is no other way ?
$form_state['redirect'] = FALSE;

This works like a charm since the form is not rebuilt or reloaded.
Below link contains more info
https://drupal.org/node/1850410