Finally, what makes any of these en_**.utf8 encodings different from another?
All of the en_**.utf8
locales use utf8 encoding, as indicated by the .utf8
ending. At that level, they are identical.
Where they differ is in the instructions they provide to programs on how to interpret and display data which may vary depending on what country/culture you are in. For example, in an en_US locale, the currency symbol is $, while in an en_GB locale, it is £. Other things which may vary by locale include sort orders, date formats, decimal and thousands separators, address formats, the wording of system-produced messages, spelling ("color" (en_US) vs. "colour" (en_GB)), and so on.
As you may now see, the locale setting is generally three distinct pieces of information packed into a single string. The en_US.utf8 locale tells programs to use the English language (en), and specifically the US dialect of English and US formatting conventions (_US), and to encode character data with the utf8 encoding scheme (.utf8).