... wenn zwei unterschiedliche Beschreibungen eines identischen Resultsets zu unterschiedlichen Laufzeiten führen, dann ist das ein Bug und kein Feature. Wer Aufwand in solche Work arounds steckt, riskiert, dass sich das mit einem PTF wieder in die andere Richtung dreht.
Das gilt auch und insbesonders für rumdrechseln mit CTEs, oder zwischengeschalteten Views (manchmal macht man das trotzdem, weil es eine Anforderung erfüllt).
Die saubere Lösung liegt hier wohl im Datenbankdesign. Ohne nähere Beschreibung könnte es sich sowohl um unterlassene Normalisierung (insbesonderre inkonsistent Foreign Key Beziehungen), als auch um fehlende Denormalisierung (wenn ich einen upper Matchcode brauche, dann sollte es das Feld geben) handeln.

D*B