I’m agree with this paradigm to an extent but I’ve seen it overdone to the point of creating unnecessary bloat and extra useless code, perhaps even costing in performance.
Each project should be carefully considered in advance and the cost/benefit should always be weighed.