Yo como te dije utilizo siempre require_once y sin problema, cierto es que tampoco he hecho ninguna aplicación muy elaborada, en la que quizás si pueda haber algún motivo para utilizar include u otra cosa.
Para la carga de código, a mi me pasaba algo parecido, y al final opté por despedazar todo en archivos, seguramente habrá mil sistemas mejores, pero para mis necesidades es lo que mejor me va, gráficamente sería algo asi
de esta forma tengo el codigo que se emplea en todas las páginas (sesiones, conexiones,funciones de uso común...) por un lado, y el específico de cada pag. por separado.
Lo que me solía pasar al principio, es que en los archivos que incluía, las rutas relativas las ponía desde el propio archivo en vez de hacerlo desde el archivo donde se carga.
Saludos.