O tubo envia dados para stdin. E não à lista de argumentos. Estes são dois conceitos muito diferentes.
Argumentos são o que está na linha após a linha de comando. O Stdin é basicamente como um arquivo que já está aberto, do qual você pode ler.
Por favor, note também que fazer coisas como esta: echo * | xargs rm -f
é uma má idéia porque pode fazer coisas estranhas no caso de arquivos com espaços em nomes, ou com "-" no começo.