I think that you are misunderstanding them, or they are *****s and have no idea what they are referring to. As Phrias said c/c++ are two of the most powerful programming language because unlike high level languages you can modify just about anything and everything. In terms of limitations c++ really has none as it really depends on the skill of the developer(s). Flaws such as limitations are more than likely bound to the application itself not the actual language and can be caused by a multitude of reasons:
*****ic programmers who don't know what they are doing.
Blue Sky effect: adding features that aren't going to be implemented yet but that you "Might" use in the future. This causes hard to read code and sometimes unmanageable.
The last one and probably the most likely cause to what your talking about is the refactor/rebuild concept. In lamen terms it's when an application get's so complex that developers ask to rebuild it. When they are given the green light to rebuild by the time it's completed thousands of developers have worked on it and the code is an absolute nightmare to maintain.
EOL: OR End of Life is a reference to when an application is no longer being utilized, reworking or sustaining it. This can be caused by a plethora of reasons, ranging from the application is not worth updating. An example is the application wasn't designed for new computers and not worth updating.
I would highly suggest that you "research" into the basics of programming languages, differences between high level and low level languages, and the concept of applications inside of corporations and their life cycles.