After reviewing the code in the form.inc (of Drupal 6 - FAPI3) to understand the life cycle of the form retrieval, processing, validating(redisplaying with errors if not validated), submitting and finally redisplaying the form if it is a multi-step form, I almost understood the whole process except that the number of parameters passed to the form_id_validate and the form_id_submit functions.
To reiterate what I understood (correct me if I am wrong) when you call the drupal_get_form with some additional parameters ($param1, $param2) that you want to be passed to the form_id function and lets assume that there will be additional default parameters ($def1, $def2) that will be passed from within the hook_forms. This makes the function definitions as the following:
Form Retrieval Phase:
form_id(&$form_state, $def1, $def2, $param1, $param2, any other additional params from the path....)
module_form_alter (&$form, &$form_state, $form_id)
module_form_id_form_alter (&$form, &$form_state)
Form Validation Phase:
form_id_validate ($form, &$form_state)
Form Submitting Phase:
form_id_submit ($form, &$form_state)