Não, não é um desperdício. É normal que programas separados sejam executados em processos separados , para que eles não possam (acidentalmente ou intencionalmente) modificar o estado um do outro. Processos separados também significam que, se um programa falhar, todos os outros não serão afetados.