Re: "The Go language does this very nicely." ?
Value insertion, not concatenation, is how you format text that will be read by a human.
Yes, well...
English is OK if you have 3 cases for none, 1 or plural.
But take Slavic languages:
1 rubl'
2 rublya
3 rublya
4 rublya
5-20 rublei
21 rubl'
1 god
2 goda
5 lyet
You need a whole code block to decide how to format a currency, date or a time ahead of selecting the proper sentence. And I am sure there are other language groups out there that are worse.