El problema con tu ejemplo es que no estas probando nada, como te dije ve este ejemplo:
ejemplo.php
Código PHP:
$foo = "alterado!!";
index.php
Código PHP:
$foo = "foo inicial";
include( "ejemplo.php" );
echo $foo;
Podras ver que la variable $foo se cambia en ejemplo pq ambas hacen una llamada a la misma variable, esto es un comportamiento natural de los requires e includes, lo que hacen es solo incluir el contenido donde los llaman y ejecutarlos, si en ese momento hay variables se sobreescriben o inicializan dependiendo del caso.
Puedes hacer un nesting muy grande de includes y requieres y siempre llamaran a la misma variable, esto es porque estan en el ambito global del script.
Singleton lo que busca es que tu puedas utilizar un objeto en cualquier clase de forma estatica (en lenguajes persistentes como JSP, puedes iniciar un objeto que este "vivo" a lo largo de multiples requests, en PHP no es posible pero se puede emular).
Es por eso que tu ejemplo no es totalmente correcto, porque no estas demostrando nada, para demostrar Singleton es ver como un objeto puede persistir a lo largo de diferentes llamadas en diferentes funciones.
Saludos.