1. статически анализировать что получается и фоллбечиться на рантайм генерацию, когда не получается (как делает оригинальный hiccup)
2. запрещать использовать конструкции, которые не получается проанализировать в компайл тайме
при этом в 1. конечно очень разнится то, сколько именно форм поддержать. тот же for можно. а другие макросы? анализировать ли try catch? ну и прочее