По-моему
у в
3 return y; - есть window.y=5,
а в
6 var y = 10; - это function Lexical Environment.
Сначала х(), а потом уже t(), используют window.y=5.
На этом примере, можешь показать как ты анализируешь области видимости. Так как это было (дословно), когда просматривал этот код, используешь ли какие-то наборы правил типа этих для
this (в разделе "Теория").
Может схемку какую рисуешь?