BOM u UTF-8 smysl má. Jinak musíš poznávat obsah posle znaků - to znamená provést analýzu textu, říct si, že by to mohl být UTF-8 a pak to jako UTF-8 otevřít.
Pokud soubor neobsahuje znaky s diakritikou, pak se soubor uložený jako ANSI a UTF-8 nijak neliší. Takže takový soubor otevřeš, otevře se jako ANSI, dopíšeš něco s diakritikou a co dál? Uloží se jako ANSI...
To, že HTML stránky a PHP neobsahuje BOM je dané tím, že to máš na web serveru nastaveno a jiné kódování použít nemůžeš.