Pro: New builtins won't break old programs.
Perhaps the programmer wrote that max()
builtinfunction because that functionalitythe builtin was not available in a previous version of the programming language. If the language does not allow user functions to shadow builtins, then old programs might no longer work in a newer version ofif the language, because of the name conflict with the recently-introduced introduces a new builtin it may break old programs that were already using that name.