I tested this out on my system and saw the same thing you did initially: upload a zip file and a text file, publish the blog post and then the resulting blog post didn't contain the zip file. I believe the problem is twofold:
a) the default size for attachments is 5MB (if I remember correctly), so I'd bet that if you either 1) increased the allowed attachment size to something greater than 5MB or 2) uploaded a zip file whose size is less than 5MB, you'll see the zip file
b) we don't show an error if you upload a file greater than the allowed size. I filed a bug for this:
Right, fixed that. It was my mysql max packet size setting that needed tweaking.