Em linguagens como C ou Perl, um zero à esquerda significa um número octal, e como os bits de permissão de arquivo são habitualmente representados em octal, o zero deve ser usado nessas linguagens para que o número não seja tomado como decimal.
Os utilitários da Shell sempre interpretam permissões numéricas como octal, portanto, o a zero não tem outro significado além de preencher ou fazer com que o número pareça uma constante octal no estilo C.
Somente os 3 dígitos octal mais baixos têm um significado em umask, então o zero extra em algo como 0022
parece um pouco redundante, a menos que se queira preencher todas as permissões numéricas com o mesmo comprimento e deixar o zero à esquerda signifique octal.
(POSIX um pouco confusamente diz que umask()
usa apenas os bits de permissão, mas ao mesmo tempo, o significado dos outros bits é definido pela implementação.)