a tus tres dudas...
- si, en cualquier momento puedes diseñar funciones que hagan de helpers de HTML, por ej.
table() (
que seria una funcion que acepte un arreglo de dos dimensiones, devolviendo el HTML de la tabla)
- si, usa ciclos cuando sean necesarios... si tu lo crees necesario, hazlo!! (
por ejemplo, para anidar listas de HTML se emplea la recursividad, variables estáticas y ciclos)
- sobre concatenar, creo que no existe mayor relevancia... en determinado momento, eso ya no importa.... ya que el efecto sigue siendo el mismo, aun que para ser sincero.... no entendí bien esta pregunta