Sometimes you may want to do recursive includes. It depends really what your model of includes is.
We normally just include everything in a master include file, but this is not the only way of doing it.
If you explicitly include things, then you may have dependencies.
Suppose you have:
utils.php # no dependencies
htmlutils.php # depends on utils.php
dateutils.php # no dependencies
dbutils.php # depends on utils.php and dateutils.php
If I chose to include both htmlutils.php and dbutils.php, with a simple require() (Note 1), then they simply got utils.php with require() themselves, it would fail because utils.php had been included twice.
Therefore, I'd use require_once to do my includes.
Note 1: I ALWAYS use require() rather than include(), because it forces a fatal error if the file is missing, which prevents any possibilty that the script will charge headlong into oblivion, screwing things up as it goes.
Mark