bash (at least up to 3.00.16) isn’t clever enough to look past a BOM to see a shebang. This might be of interest if you have, say, a Perl script running as a cron job that you update, the replacement version being utf-8 encoded...
“cannot execute binary file” indeed.
That’s all.