Earlier quoted context omitted.
It still is, provided you follow the build procedure prescribed by the author of that quine (check the Makefile from the contest): $ rm -rf a $ cp a.c a $ chmod +x a $ ./a $
I find it interesting that displays the error from exec, but not bash: zsh: exec format error: ./a
The file is marked as executable, so the shell very reasonably tries to execute it by calling some well-chosen member of the exec() family (http://linux.die.net/man/3/exec).
The exec() function then needs to open and parse the file according to the formats it supports, which of course fails since the file is empty.
Do you simply mean that you expected the shell to validate this, and not try to execute empty files?