Iré por partes:
1.- Así es.
Cita: Nota Si tiene un controlador de errores global, éste tendrá prioridad sobre el control de errores especificado en el atributo defaultRedirect del elemento customErrors del archivo Web.config.
2.- No es necesario esa variable de sesión, en el código que mandas me imagino que esa variable de sesión se pone para dar más detalles del error en Error.aspx
3.- El poner debug=false no tiene nada que ver, debug=true se usa para sistemas en desarrollo, ya que agrega información de depuración al pdb que se genera (en la carpeta bin).
4.- Pues yo creo que en nada, ya que el error será manejado dentro del Try/Catch (eso si es que no lanzas una excepción desde el bloque Catch).
Saludos