Clean, but what are you supposed to do with user agents which do not support JavaScript? Server-side templates still let you customize the page in that case.
Right, in this case client-side templating just moves to the server.
When JS processing isn't available on the client side, this same stack is moved to the server side. This way the same logical separation between UI and data is maintained.