I am asking for an enhancement to zcat, that it should silently ignore empty files, either always, or (if that conflicts with POSIX or some other standard), by a command line option.
zcat -f does what you're asking for. For example:
$ touch empty $ echo something | gzip >abc.gz $ zcat -f * something Since the -f option satisfies your request I'll close the bug report.