Resultados inesperados de CTE

He creado un proceso complejo que utiliza varios CTE (principalmente para trabajos jerárquicos recursivos).
En pequeños conjuntos de muestras de datos, todo sale como se esperaba, pero cuando aplico el código a grandes conjuntos de datos recibí resultados inesperados (y erróneos).

Creo que lo he reducido a los CTEs. Los CTE recursivos son datos "alimentados" procesados ​​en varios CTE anteriores, y ese parece ser el problema.

He creado unconjunto de datos de muestra como sigue:

Cuatro filas con datos únicosCada fila recibe un número de fila aleatorio (esto se agrega en un CTE

Luego tomo los resultados del primer CTE y realizo una auto-unión en un segundo CTE.
Esperaba que todas las filas se unieran, cada una a sí misma. Lo que realmente sucede es que las filas desiguales se unen.

¿Alguien puede ofrecer una explicación para este comportamiento?

Respuestas a la pregunta(1)

Su respuesta a la pregunta