Que tal
abimaelrc,
el __call no hace nada en el ejemplo de uso, pero si tiene un razón de ser, es un proxy al RecursiveCachingIterator, con respecto a unirlos, habria que ver, los Traversables son diferentes, y necesitan flags especificos para funcionar correctamente, si son una única clase tendrias que estar controlando el tipo de Traversable, creo que seria mas viable hacer un componente con los mas comunes y un set de decorators para la visualización, podria ser algo interesante
.
Saludos.