No puedo entender el comportamiento de eliminar vars en JavaScript

Aquí está el problema:

var x = 5;
window.x === x // true. x, as it seems, is a property of window
delete x; // false
delete window.x; // false;

PERO

window.x = 5;
delete window.x; // true

Y

window.x = 5;
delete x; // true

¿Cuál es la explicación para tal comportamiento?

Respuestas a la pregunta(3)

Su respuesta a la pregunta