Apparently, it is an attempt at optimization based on the assumption that if one number is 0.0, then the product is 0.0 and we can ignore the rest. However, if the List contains NaN, PositiveInfinity or NegativeInfinity, the product would be NaN, not 0.0. Unless someone wanted to redefine what the product of a list of Doubles means.