What you've got should be equivalent:
set site_name [HTTP::host]
set index_html [string map "SITE $site_name" ${::template}]
HTTP::respond 200 content $index_html "Content-Type" "text/html"
HTTP::respond 200 content [string map "SITE [HTTP::host]" ${::template}] "Content-Type" "text/html"
You could remove the curly braces in $::template, but they don't hurt anything by being there.
Is that what you were looking for? I'm not sure what you meant by "This isn't ideal as something HTTP:host is not the name of the application.".
Aaron