а вы вот так перепишите, возможно понятнее будет
// Вот так работает
const decoratedDouble = decorator(double);
console.log(decoratedDouble(5)); // 10
// decoratedDouble это уже другая функция. та, что возвращается из декоратора.
// Просто вы ее перезаписываете в уже существующую переменную.
// А вот так нет
console.log(decorator(double(5))); // [Function (anonymous)]
ну и второй вариант правильнее писать так, т.е. и прямой вызов работает:
console.log(
decorator(double)(5) // декоратор возвращает функцию, которую надо вызвать
); // 10