void main() { func(); // error foo.func(); // ALSO errorbar.func(); // Not error, BUT it's actually calling foo::func from C++ land!}
I don't see any fundamental issue here because you can still use renamed imports to disambiguate any call. However it does feel extremely dirty from the reading clarity point of view and can be a good reason to prohibit naive usage of namespaces in D code in same way as modules.