Подвох здесь в том, что если фигурные скобки {...} идут не в выражении, а в основном потоке кода, то JavaScript считает, что это не объект, а «блок кода» (как if, for, но без оператора, просто группировка команд вместе, используется редко).
{} + [] // = + [] - что преобрузуется в "0"
[] + {} - будет "[object Object]"