I think this would be really useful, and the proposed implementation strategy makes sense to me.
Something that’s related to this (but likely can’t use the same mechanism) are attempts to improve the readability of compiler diagnostics by simplifying type names printed by the compiler. One example of that is GitHub - vittorioromeo/camomilla: Simple Python script that simplifies C++ compiler errors. Useful when using heavily-templated libraries., which is a post-processing script written in Python.
It would be really nice if e.g. Clang could use the same underlying “type name simplification” machinery used by the demangler out of the box. That way, we could customize its type printing like we customize that of the demangler. However, I understand they are operating on vastly different trees so this may not be feasible or even desirable – I wanted to point it out so we at least consider the possibility.