The implications with this DIP is that all library authors will have to follow a convention of having all C++ dependencies in a module named "cpp" in order to have a "fake" way of specifying fully qualified C++ names.
Not at all, any more than you have to do that for C names.
This is not elegant. It is a hack.
C++ is not elegant, and interfacing to it will necessarily pick up some of that.