Only if a value was not supplied at all will the default expression be used. The :missing symbol is there to make it possible to differentiate between a given nil, and the nil that would mean missing. Line 200 ensure that there are :missing symbols instead of nil for missing values. The alternative would be a far messier check using lengths of the arrays. Note on 209 that we just look up the argument, which is now either a given (non nil), a given nil, or :missing. Without :missing, well then one state would be missing [sic].