Выскажу мнение: я всегда считал, что это одно понятие.
Scope — это окружение, в котором исполняется код функции, когда функция вызывается обычным образом.
Для обеспечения статического связывания переменных и аргументов, которое также называется лексическим замыканием, спецификация JS предполагает, что во время создания функции-как-объекта у неё появляется поле [[Scope]], которое содержит контекст исполнения, в котором функция создана, и в качестве прототипа использует [[Scope]] контекста (обычно, [[Scope]] той функции, в теле которой создана рассматриваемая функция). Когда функция вызывается, она использует этот свой [[Scope]] для того, чтобы создать контекст исполнения своего кода.
Подробнее:
javascript.ru/ecma/part10 (намеренно даю ссылку на 3-ю редакцию)
Поэтому мне не понятно, почему кто-то говорит, что scope не существует, когда его существование явно требуется спецификацией языка. Разве что в том смысле его не существует, что интерпретатор не обязан явно этот объект создавать, но и об этом спецификация говорит.