This is pretty weird:
>>> arr = np.array([1, 2, 3], dtype=object)
>>> np.add.reduce(arr)
6
>>> np.add.reduce(arr[:0])
False
>>> np.multiply.reduce(arr)
6
>>> np.multiply.reduce(arr[:0])
True
It happens for array results too:
>>> arr = np.array([[1], [2], [3]], dtype=object)
>>> np.add.reduce(arr[:0], axis=0)
array([False], dtype=object)
>>> np.multiply.reduce(arr[:0], axis=0)
array([True], dtype=object)