Выполняет код не include а РНР. Дело в другом. Include не подходит, когда посредине скрипта надо начать новый, а на старый забить.
<?
if(something)
{
//ToDo
}
else
{
// Должны уйти
}
//ToDo 2
?>
При отработке ветви else и использовании include, интерпретатор отработает и код //ToDo 2, а это может быть не желательно или не нужно. В данной ситуации include не помогает.