Fala Breno, tudo bem?
O que ocorre é que quando utilizamos var com o mesmo nome repetidamente, não dará nenhum erro e sim haverá uma substituição de valores, então no código, esse var peso equivale á tdPeso.textContent porém quando chamamos essa variavel e atribuimos um novo valor, essa variável terá esse valor, que no nosso caso será form.peso.value, por exemplo:
Abaixo temos uma variável nome que contém o valor de Maria, e dando um console.log nessa variável vamos que retornará o valor dessa variável:
var nome = 'maria';
console.log(nome) //maria
Agora, logo abaixo iremos subtituir esse valor por joão e daremos o console novamente:
var nome = 'maria';
console.log(nome) //maria
var nome = 'joão'
console.log(nome)//joao
E você pode ver que o console antigo ainda mostra maria pois ainda não houve essa nova atribuição de valor, e logo no outro console, após a atribuição de um novo valor, esse console nos retorna esse valor que é joão.
Espero ter ajudado, bons estudos :D