Modificando argumentos 'passados por valor' dentro de uma função e usando-os como variáveis locais

Eu vi algum código no qual os argumentos passados para a função por valor estavam sendo modificados ou atribuídos a um novo valor e estavam sendo usados como uma variável local.

É uma coisa boa a se fazer? Existem armadilhas para fazer isso ou é bom codificar assim?

questionAnswers(2)

yourAnswerToTheQuestion