Кажется понял. Объект { "4": 1 } получается потому, что мы ложим результат условного оператора в элемент acc[item], и item в данном случае 4, а не 0.
В первом случае значение получается 5, потому что array[0] существует, а втором 1, потому что свойство "4" со значением 1 еще не существует, мы его получим после выполнения условного оператора.
|