UTF-8はエンディアン関係無いよ。これは1バイトずつの並びだから
どのCPUでも扱いは同じ。
Unicodeの表を元に実際のバイトの並びを決めた方式の一つがUTF-8

BOMはUnicode(≒UTF-16と思っていいか?)には必須だが
UTF-8の場合、このファイルはUTF-8でエンコードされてると
わかるためのしるし。
何も無かったらそのユーザーの環境で普通に使われてるエンコーディングと
判断されるケースが多い。