I think with C++ I had also reached the point where I realized it was not just difficult to scale (I had worked on ginormous codebases) it was also difficult to 'control'... Adding new people on the project could sometime mean disasters that would go unseen for a while before exploding in your face...
Newbie programmer decides it's a cool idea to go and 'tweak' the String class - or any other base class- or other equivalent 'good idea' that sometime lead to huge amount of effort to understand the weird ripple effects afterward, and then 'fix' so it's done 'properly'.
There was also the 'design for design' problem where a 1/2 page feature that was ever going to be used ONCE was designed with an imbroglio of 5 or 6 classes just to match some person's idea of a 'design pattern'.
I've now 'reverted' to mostly 'procedural' C; however, quite a lot of the 'good' concepts of C++ for encapsulation can be done in C without all the faffing around, and it's a LOT harder to fsck up and create ripple effects; you can 'layer' modules instead of 'inheriting' with the equivalent compartmentalization you'd want from C++, without the 'dangers' of inheritance.
Sure, it lacks syntaxic sugar, and sure, there's still stuff I miss; but it does scale pretty well, and the footprint difference is fantastic.