"If no files are specified, or if a file name is "-", the standard input is compressed to the standard output."
In all your cases you piping source stream to
gzip's STDIN without specifying content to compress as a source file. In these cases
gzip sends compressed stream to STDOUT by default that makes
-c option useless/redundant.
-c option is useful when you calling
gzip -c sourceFile so in this case instead of
compressing sourceFIle+adding extension GZ+deleting sourceFile
it will send compressed stream to STDOUT and won't delete sourceFile.
gzip -c sourceFile | anotherProgram