Outside of benefiting from Adaptive Rendering for alternate devices, does it ever make sense to write all of this code:
writer.WriteBeginTag(\"t
HtmlTextWriter is beneficial because:
HtmlTextWriter is the cleanest and the mark-up is nicely indented when it is rendered.
There is a performance impact as HtmlTextWriter writes directly to the output stream. Stringbuilder doesn't write to the output stream until ToString is called on it.
There is an example on why you would use HtmlTextWriter for Saving and Reusing HTML Output here as well.