ICMP Source Quench has issues. The ITR would need to briefly cache source quench messages from routers on the way to the ETR and then pass them back to the source for the next packets which would use the same ETR.
ICMP time-exceeded has issues: The ITR has no way to pass a time exceeded message for a GRE packet back to the original sender. Traceroute as we know it would break. Possible solutions:
TRRP breaks "holey" routes where a longer prefix overrides the route to the shorter one. If the short prefix remains globally routable but the long one is withdrawn, packets will follow the route to the short prefix instead of falling into an end-of-the-line ITR.
TRRP has a potentially long startup delay when the local ITR hasn't yet cached an ETR for the packet's destination. This could be resolved with a network of Initial Aggregate Tunnel Routers which handle packets using a suboptimal but already cached path until the ETR lookup is complete.