Os programas geralmente chamam as bibliotecas de programas subjacentes às quais você se refere. A linha de comando está lá para encadear essas ferramentas, o que é muito mais eficiente (em tempo de desenvolvimento), depois escrever e compilar um programa em C que chama as bibliotecas. Embora seja apenas marginalmente mais lento em tempo de execução.
AFAIK este uso de pequenos programas juntos era, e é, a filosofia Unix.