Sometimes you kind of need render functions but it definitely isn't the most handy way of building a template.
Many, many people struggle with this, including FE guys. In my experience, html is a pretty good abstraction of html.
Many have tried making it easy to do this programmatically but, at least imho, no js syntax beats good old html. No a huge fan of react but jsx templates are better than r(node, props). Even jquery allows you to do this.
https://vuejs.org/api/render-function.html
And let's be real, nobody likes writing code this way.