I wonder if allowing/supporting this at the expense of being able to do static dependency discovery was a conscious decision?
FWIW, we just went through a similar issue for C++20 modules where an import can no longer be the result of a macro expansion (I realize these are different macros but the underlying problem is the same; see P1703 for details). So, in this regard and IMO, C++ has a saner model here. And if C++ is saner than you, that's not a good sign ;-).