Olá mbamu!
Nesse caso não funciona pelo seguinte motivo:
textContent é do grupo de funcionalidades que chamamos de "getters". Eles são os responsáveis por "pegar" algo e retornar para algum lugar.
Nesse caso o textContent tá pegando o valor de tdImc e armazenando no imc.
imc = tdImc.textContent;
Logo você pode dar um console.log(imc) que o valor irá aparecer.
Já quando você tenta fazer o inverso você não tá armazenando o valor em lugar nenhum.
tdImc.textContent = imc;
Você está atribuindo a tdImc.textContent o valor de imc.
Se o seu imc tiver sido inicializado com 0 e você fizer:
tdImc.textContent = imc;
test = tdImc.textContent;
console.log(test); -----> Irá retornar 0
Repare que nesse caso não adiantou pegarmos o valor de tdImc pois jogamos um valor em cima que sobrescreve ele, por isso que não aparece o resultado.
Espero que tenha ajudado! :D
Bons estudos! ^^