Then I realized how hard they are to debug once codebase looks like this, and any serious production code will get debugged to hell, no doubt there. Also implementing changes require same mindset, which is rare in teams generally, so its basically a technical debt right in creation.
KISS, the most important principle in any form of engineering is exact opposite of this. I've seen and experienced great success with it. I haven't seen that much success when ignored, apart from one man / tiny homogeneous team show.