Usar -O com c é ignorado, pois nenhum arquivo é extraído . Você obterá o mesmo resultado de qualquer maneira:
$ tar c -O foo | tar t
foo
$ tar c foo | tar t
foo
É por isso que acho seu erro surpreendente, já que tar não é covarde se você especificar um caminho.
tar não pode ler os dados do arquivo stdin para criar um arquivo, pois tar não terá como saber o que é um arquivo - onde um começa ou termina, qual é o caminho e metadados é.