Clean separation between controllers and routes is one of those things that looks simple but makes a big difference once a project grows. I learned this the hard way. Mixing logic and routing made refactoring painful when we later added API versioning and centralized error handling. Structuring it early saves a lot of time later.