I agree that you can dynamically load C++.
However I also agree that in that case, a C interface is often appropriate.
But note exactly what I said: a C INTERFACE is appropriate. It can still be C++ UNDER THE HOOD. I've done that once or twice and it is the best of both worlds.