The BOM is an aBOMination. If you simply assume that everything is UTF-8 until proven otherwise, you can get pretty far - the legacy code pages produce text that's not usually valid UTF-8 unless they stick to ASCII.
Yes, you can assume, but existing applications, maybe written in 1990s even 1980s, won't.
And there are millions of computers, maybe in important industrial companies, are still using them.
If that's the case they won't handle a BOM either.