No tiene que ver con la propiedad sino con el objeto, __toString retorna la representación en string del objeto, puedes agregar las propiedades que quieras para representarlo, incluso puedes renderear una vista, lo que importa es que retorne un string, en tu ejemplo podría ser algo así tambien:
Código PHP:
Ver originalpublic function __toString()
{
return sprintf('%s:%s:%s', $this->id, $this->name, $this->slug); }
No le ves utilidad ?, en el fw que mencionas lo utiliza el FormBuilder para generar los select's de las relaciones, incluso tiene utilidad en algo tan básico como un listado, en vez de estar llamando a una propiedad del objeto puedes hacer un echo del objeto directamente.
//sin toString
Código TWIG:
Ver original{% for object in collection %}
{{ object.name }}
{% endfor %}
//con toString
Código TWIG:
Ver original{% for object in collection %}
{{ object }}
{% endfor %}