Потому-что cachingDecorator возвращает функцию, ссылка на которую присвоена методу slow объекта worker.
вот альтернативные варианты записи
worker {
slow: function(x) {
// this = worker
}
}
worker.slow = function(x) {
// this = worker
}
function test() {
// this = window;
}
worker.slow = test; // передали по ссылке, теперь this = worker
const resFunc = cachingDecorator(worker.slow); // вернул функцию function(x), this = window
worker.slow = resFunc; // передали по ссылке, this = worker
советую почитать про замыкания, там более подробно все это описано.