Careless LANG breaks tr a-z

This is news only to me, I suppose. But just in case:

I've always used LANG to get the national "åäö" characters to show up. Just wanting them to show up but otherwise play in US-ASCII. Had not thought properly what I was really asking for and the nose is finally bleeding.

Somewhere along the years, programs have been upgraded and character range a-z now means "a and all other a-like characters appended b ...". Same with 0-9, it now expands to "0 1 super-1 2 square 3 cube 4 5 ... 9"

I will continue in my wrong ways, but using LC_CTYPE from now on, instead of LANG.
Locales are a mess in my opinion, LANG should strictly mean the language that gets selected for translated texts in programs and nothing else.
It's a messy area. If I was looking for Åkermann Åke in a phonebook, I'd look from couple of places in the collating sequence. A Spaniard might search from another location. Then a Michigan phonebook might have totally different ideas. Who's LANG should be taken...