Right URL rewrite after 404 redirect
Thanks to Krister Andersson answer, I seem to have got it right.

function THEME_preprocess_page(&amp;$variables, $hook) {
   $status = drupal_get_http_header("status");  
   if($status == "404 Not Found") {
      // get the configured 404 error page url :
      $not_found_url = variable_get('site_404');
      unset($_GET['destination']);
      drupal_goto($not_found_url);
   }
}


It will rewrite the url according to the configured default 404 error page, it works with multilingual variable too.