#7 Yo todavía no soy muy pr0 con symfony aunque voy haciendo mis cosas. La explicación de #4 es bastante buena aunque los servicios no tienen porque ser controladores, es mas, la mayoría de las veces no lo son aunque se puedan declarar como servicios (hay opiniones encontradas en contra y a favor de declararlos como servicios).
Tu puedes definir servicios a partir de cualquier clase (creo que seria mas correcto que decir controlador), puedes hacer por ejemplo una o varias funciones que usas mucho en otras partes de tu proyecto, controladores, formularios, etc y parte de la gracia estaría en que teniendo acceso al contenedor de servicios (si no recuerdo mal poniendo en consola php app/console container:debug ves todos los servicios disponibles) puedes hacer uso de esa función sin falta de tener que importar la clase en tu fichero y con una simple linea (al menos en controladores porque ya tienen acceso directo al contenedor de servicios).
Ademas a estos servicios le puedes inyectar otros servicios/dependencias, por ejemplo imaginate que quieres un servicio que tenga que hacer consultas en la base de datos, pues cuando declaras el servicios en el fichero que hay para ello (services.yml) le inyectas por ejemplo el entity manager de doctrine. Incluso las extensiones de twig se pueden declarar como servicios.
Yo si veo que una función o utilidad la voy a utilizar mas de una vez suelo meterlo en un servicio, de hecho hay un paradigma de programación que es orientado a servicios y si no recuerdo mal el propio framework tira de el.
Si te lees este apartado puede que te quede mas claro:
http://librosweb.es/libro/symfony_2_x/capitulo_16.html