In this code in func.inc, it looks like RC is caching a message both to the database and to the local temp directory. Why does it cache 2 times?

// let's cache the message body within the database
  if ($CONFIG['enable_caching'] && $cached && ($CONFIG['db_max_length'] -300) > $headers->size)
    {
    $DB->query("UPDATE ".get_table_name('messages')."
                SET    body=?
                WHERE  user_id=?
                AND    cache_key=?
                AND    uid=?",
               $msg_source,
               $_SESSION['user_id'],
               $cache_key,
               $uid);

    return $msg_source;
    }

  // create dir for caching
  if (!is_dir($cache_dir))
    $dir = mkdir($cache_dir);
  else
    $dir = true;

  // attempt to write a file with the message body   
  if ($dir && ($fp = fopen($cache_path, 'w')))
    {
    fwrite($fp, $msg_source);
    fclose($fp);
    }
  else
    {
    raise_error(array('code' => 403, 'type' => 'php', 'line' => __LINE__, 'file' => __FILE__,
                      'message' => "Failed to write to temp dir"), TRUE, FALSE);
    }

  return $msg_source;