BTW; not all UTF-8 text has a byte-order mark, I would say most of them don't.
Guessing between valid UTF-8 and Latin-1 is only ever ambiguous when there are multiple non-ASCII characters in a row and all those sequences are made up of a lead byte with the correct number of trailing bytes. How often is that a problem for you in practice?
What I don't get is why so many say it is required in the head, even when you manage to set the header.
Or we could have a default of UTF-8.
I don't dispute that it can be nice. I am just curious why so many say it is required.
Another use case might be content that is authored in a content management system. Perhaps it's the easiest way to carry your intended charset to the destination.