programming-C or C++

While AVR-GCC does allow some C++ constructs, the support is quite limited

Limited in what way?

The reason is that C++ can enable some bad behavior (by inexperienced programmers)

That's true of all programming languages including C. It's not a reason to choose one language over the other.

C is more rigid

Rigid? C? Compared to what? C++?