O POSIX não especifica que o PID de cada novo processo seja obtido incrementando o PID anterior. Requer apenas que seja único.
Em um sistema em que os PIDs são incrementados em cada um deles fork(), observei que os valores retornam após atingir um limite superior (que na minha experiência é de cerca de 2 15 ). Depois de entender, os novos PIDs não são estritamente incrementados, pois alguns valores de PID ainda serão utilizados nos ciclos anteriores.
Não deve haver problema até que você tenha 2 N executando processos simultaneamente . Suspeito que o sistema tenha algum limite de capacidade muito antes disso. Nesse caso, a fork()chamada do sistema falharia e provavelmente configurada errnocomo EAGAINou ENOMEM( man forkpara detalhes).
O código implementado forkpode ou não verificar se existem PIDs disponíveis. Pode não incomodar, porque pressupõe que os recursos do sistema acabariam antes de chegar a esse ponto, ou pode ter uma verificação explícita por uma questão de integridade e para lidar com possibilidades futuras. Eu não verifiquei, e se eu tivesse, poderia apenas resolver o kernel que eu tinha examinado.