En realidad, usar bools es un poco estupidez desde mi punto de vista.
Imagina una función que puede devolver false si da error o true si acaba correctamente. Imagina que la función crece y puede dar varios tipos de errores. Cuando solo puede dar un error, con false es suficiente, pero si tiene mas tipos, tienes que cambiar el bool por int, poner varios valores a la hora de hacer return, cambiar el código que usaba esa función... Es más práctico a la larga usar ints.