…じゃなかった、二つ目の|は :g のコマンド部に含まれることになる(ので、一行ごとに let c=c+1 | s/^/\=c が実行される)
だから多分おっしゃってる通りです

言いたかったのは、シェルでいうパイプみたいな入出力機能は無いよってこと