The main limit to how large a system can get in a simple programming language comes when you try to pass maintenance over to another developer. Languages which can express ideas more directly allow the new developer to safely alter the function of the system without understanding its entirety. A single developer who wrote the whole system may well be able to understand the intricacies of the whole system simultaneously, but that is not a sensible requirement for any other developer, who just needs to know how components of the system fit together, and how the component they're developing works in detail.
Perhaps the simplest way to explain it is: imagine writing a 500k BASIC program without using PROCs. This is the same way a C developer views using BASIC which doesn't have structs, and the same way an OO developer views using C which doesn't have classes.