The reason why I use the words "incremental changes". The garbage collection example that you say are not incremental changes, but systemic changes that require massive refactorings. If you are simply moving around code, that is, say you stick to just reference counting, your garbage collection complexity isn't going to change much if you stick to same approach.
The second example about validation involves reducing code by adding meta data. The original examples begins with a lot of code duplication and the final example is one where that information is derived from structure. That is refactoring and it does reduce complexity. When you consolidate common structure, by defining common base classes or commonly used functions, then you indeed reduce complexity.
The second example about validation involves reducing code by adding meta data. The original examples begins with a lot of code duplication and the final example is one where that information is derived from structure. That is refactoring and it does reduce complexity. When you consolidate common structure, by defining common base classes or commonly used functions, then you indeed reduce complexity.