No tiene mucho tema.
El main es solo una función más. En el proceso de linking, se utiliza como punto de entrada.
Luego, no sé cómo está estructurado Agobot, pero si tiene varios mains, tendrán alguna razon, ya sea porque son varios ejecutables, o la razón que sea.
(Intuyo que hablas de funciones main, y no de archivos llamados "main.cpp")
efectivamente me refiero a la funcion main, por ejemplo he visto empezar algunos programas por el procedimiento void start()