drupal_is_front_page() fails when using alias If I set the default front page to use a node with an alias, e.g. 'home', drupal_is_front_page() fails as it compares the un-aliased path ($_GET['q']) with the value of the 'site_frontpage' variable. Would it not be better to save the 'site_frontpage' variable as un-aliased path, or am I missing something?

Sorry, this is actually what happens. The variable must have been set to 'home' by something else.
drupal_is_front_page() compares the content of the "site_frontpage" variable with an un-aliased path because the content of that variable is set to an un-aliased path, on the page at admin/config/system/site-information.

In system_site_information_settings(), the form builder for that page, the content of the "site_frontpage" field is set using the following code:

'#default_value' =&gt; (variable_get('site_frontpage') != 'node' ? drupal_get_path_alias(variable_get('site_frontpage', 'node')) : ''), 


In system_site_information_settings_validate(), the form validation handler for that page, the value of the "site_frontpage" field is set using the following code:

  if (empty($form_state['values']['site_frontpage'])) {
    // Set to default "node".
    form_set_value($form['front_page']['site_frontpage'], 'node', $form_state);
  }
  else {
    // Get the normal path of the front page.
    form_set_value($form['front_page']['site_frontpage'], drupal_get_normal_path($form_state['values']['site_frontpage']), $form_state);
  }


What is being saved in the "site_frontpage" variable is the normal path (a.k.a. the un-aliased one). It is the correct what drupal_is_front_page() does.
If there is a module that set the value of that variable to a path alias, then the code of that module should be changed, as that module is not working with the actual Drupal code.