JSTL Core <c:if>, <c:choose> é uma boa prática para controlar edição e visualização?

Bom dia pessoal.

Gostaria de saber se é uma boa prática abusar do uso de tags condicionais do JSTL, por exemplo o c:if e o c:choose.

Pensando em um sistema comum, eu tenho um registro X onde eu posso abri-lo em modo Visualização ou Edição e/ou alternar entre esses modos na mesma tela.

Seria uma boa prática utilizar c:ifs no formulário todo verificando o “estado” da tela e alternando componentes de outputText para inputText?

Há alguma perda de performance?
Há algum problema nesse uso? Se sim, quais alternativas poderia se adotar com relação a este comportamento?

Obrigado desde já.