On Tue, Oct 20, 2020 at 2:27 PM mircan via Std-Proposals <std-proposals@lists.isocpp.org> wrote:

I have recently came across an interesting problem that might be related to a subject for improvement

IIUC, your discovery relates to
http://eel.is/c++draft/cpp.replace.general#13.sentence-3
> If there are sequences of preprocessing tokens within the list of arguments that would otherwise act as preprocessing directives, the behavior is undefined.

This wording has been challenged by at least these papers:
http://open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3801.pdf (make it ill-formed instead of undefined)
http://www.open-std.org/JTC1/SC22/wg21/docs/papers/2014/n3882.pdf (make execution of the directive "conditionally supported")
but as of C++20, it's still UB.

–Arthur