After looking at the code, I can confirm that the only cause of that error is lookup failure. In fact, here's the code:
if abs(lookup(ATT'FILE(AX))) < 1 then
SAVE'STATUS = EMS_BADATT
...
And you're right, there's no way that EMAILX is going to do any interpretation of the contents of the document, so it was really a bad choice of error name/description. It should have been "Attachment not found". (Or, it was found but had zero bytes in it, which I think could occur if the file hadn't been closed yet.)
If that doesn't clear it up quickly, you can trace the exact filespec by using the combination of SET TRACE FOPENS ON and SET TRACE XDEBUG ON before you run your program, then check the ashlog.
On a side note to the joker sitting in the back of classroom: I found the cause of that colon problem and will release the patch in 6.5.1667.2. But that's for PDFX emailing, not EMAILX. So pipe down back there!