There's added overhead in an amxx plugin vs a metamod plugin, of course.
However, most of the time the added overhead is very negligible.
If you have a very large project that you think would benefit from being in C++, and you want it to interface properly with other amxx plugins, the best solution might be to either add lots of server commands to control it, or create the core of it as an amxmodx module, and then have amxx plugins control its behavior.