Quando usar runat = “server” no HTML normal

É sempre apropriado usar runat = "server" em um elemento HTML padrão em vez de um verdadeiro controle ASP.NET? Eu tenho controle total sobre a configuração do html / texto do elemento normal, então por que não usá-lo em vez de um controle ASP.NET WebForms "clunky"?

Se um é melhor que o outro, alguns pontos de interesse que eu gostaria de saber:

Diferenças de desempenhoDiferenças de funcionalidadeOutras diferenças não são tão óbvias?

Uma diferença de exemplo:

<asp:Literal ID="mySpecialHtml" runat="server" />

<div id="mySpecialHtml" runat="server" />

questionAnswers(5)

yourAnswerToTheQuestion