Creo que te complicas demasiado. Una función del tipo que coloqué debe de funcionar para mostrar una lista creada en base a registros.
Código:
PRINT 'La lista de todos los registros resumida en una sola cadena para id 25 es: ' + dbo.fnIdPadre(25)
Si no es eso entonces no entiendo que es lo que necesitas.
PD. No entendi lo de los sinonimos