Funções de objeto JavaScript e `this` quando não acopladas e retornadas em expression / parens

As linhas 1-2 e 4-5 fazem sentido em termos dethis devolvida. O que estou perdendo na linha 3? Eu pensei que voltariawindow semelhante às linhas 4-5. Existe outro padrão não nestes 5 que poderia ajudar a demonstrar o porquê?

foo = { bar : function () { return this } }

foo.bar() // ==> foo

(foo.bar)() // ==> foo / but why?

(foo.bar ? foo.bar : $.noop)() // ==> window

(foo.bar || 0)() // ==> window

questionAnswers(2)

yourAnswerToTheQuestion