As far as I know, your first command (zcat ... | gzip > d.gz) - 'cat's all the three compressed files - then compresses it, one after another and save it to a single file named d.gz.
In second case, you read a compressed file and append it to a file named d.gz. d.gz is NOT compressed. Adding a 'gz' to a file name does not compresses it.