the interpreter executes code between <? and ?>, and doesn't output it's content, but outputs everything else in the file. The BOM marks are located *before* the <?, and thus is considered content by the interpreter, and is sent to the client.
Also, if you are using multiple PHP files that include each other, a BOM will be sent for every PHP file you are including, which will return in BOMs in the middle of the produced document. Regards, Stefan