cat is an identity pipe. It only streams its input to its output. If the second program in the chain can take its input from the same argument you pass to cat (or from the standard input, if you pass no argument), then cat is absolutely useless and only results in an additional process being forked and an additional pipe being created.