По идее Javascript никак не должен изменять и оптимизировать скобки.
Как написано, так и выполняется.
let x = a+(b+c);
будет и выполняться примерно как
let _;
_ = b+c;
x = a+_;
И никак иначе
Но.
'use strict'
const A = {
f(x) {console.log (this, x)}
};
A.f (10); // => {A}, 10
let t = A.f;
t(20) ; // => undefined, 20
let _;
(_ = A.f) (30); // => undefined, 30
(A.f) (40) // => {A}, 40 Почему?
Разве последний случай не тоже самое, что
let _;
(_ = A.f) (40);
Ведь сначала должно выполнится действие в скобках, т.е "вычислить" A.f и потом вызвать этот результат, как функцию.