Wobei bist du dir nicht sicher?
file_exists()
prüft auf Existenz, is_readable() auf Existenz und Lesbarkeit.
Für den include() muss die Datei logischerweise existieren und lesbar sein.
Also kann es ja sein, dass file_exists() erfolgreich ist [Datei existiert], aber der include() fehlschlägt [Datei ist aber nicht lesbar].
Ist nur eine Theorie, im Normalfall stimmt einfach der relative Pfad nicht, da zuviele Dateien andere Dateien in anderen Ordner-Ebenen includen.