Não há muito que um programa possa fazer significativamente sem fazer nenhuma chamada de sistema. As chamadas do sistema são o principal método através do qual um programa se comunica com qualquer coisa fora do próprio programa.
A comunicação por meio de arquivos mapeados na memória ou memória compartilhada é possível, mas ainda requer chamadas do sistema para configurar isso em primeiro lugar. Depois disso, ele pode ser usado para se comunicar sem mais chamadas do sistema.
Um programa pode receber informações do exterior por meio de sinais. Mas, se nenhum manipulador de sinal estiver instalado, o sinal apenas mataria o programa, e a instalação do manipulador de sinal, em primeiro lugar, requer uma chamada de sistema. Em princípio, um programa também precisa fazer uma chamada de sistema no final do processamento de um sinal recebido, mas se o sinal foi configurado para não bloquear os sinais no recebimento, a saída do manipulador de sinal pode ser feita sem uma chamada de sistema. Isso é mais uma curiosidade do que uma técnica significativa com aplicações da vida real.
Um programa que não faz nenhuma chamada de sistema estará consumindo todo o tempo de CPU que pode obter porque dormir (na maioria dos casos) requer uma chamada de sistema. Um programa pode estar em espera porque está aguardando que as páginas mapeadas sejam carregadas do disco. Mas sem as chamadas do sistema, as únicas páginas mapeadas a serem carregadas seriam o próprio executável, que logo seria armazenado em cache.
Ao executar o programa, os resultados parciais podem ficar visíveis para outros programas, modificando sua própria linha de comando ou variáveis de ambiente. Aqueles podem ser modificados sem uma chamada de sistema.
Até mesmo um término normal de um programa envolve uma chamada de sistema. Mas um programa pode acionar um sinal para terminar sem uma chamada de sistema. Sinais que podem ser acionados incluem SIGILL, SIGBUS, SIGFPE, SIGSEGV.
Dado tudo isso, seria possível escrever um programa que, quando iniciado, faria alguns cálculos sobre os valores fornecidos na linha de comando e, eventualmente, terminaria por meio de um sinal diferente, dependendo do resultado desse cálculo. Essa não é a maneira mais útil de indicar o resultado de um cálculo, mas certamente é possível.