Как удобно реализовать роутинг при большом списке роутов на Koa?
Я бы предложил вообще вынести список роутов в один файл. Ведь по сути роутинг это просто связывание хэндлеров с определенным URL (Иногда с привязкой middleware посередине).
Далее этот файл положить в одном каталоге с точкой входа в приложение и в него уже заимпортить реализации хэндлеров из тех модулей которые необходимы.
Это позволит полностью отделить реализацию от путей. А так же позволит не запутаться в огромном кол-ве путей и групп, т.к. они будут в одном месте.// routes.js
import users from './users';
import posts from './posts';

router
  .get('/', app.homeHandler)
  .get('/posts', posts.listHandler)
  .post('/users', users.createHandler)
  .put('/users/:id',  users.changeHandler)
  .del('/users/:id', users.deleteHandler)
  .all('/users/:id', users.allHandler);
Мы разносили роуты + модели для каждой абстракции (users, clients, cards) по отдельным папкам, и у вас соответственно в корне есть папки users, clients, cards, и внутри подпапки routes и models.
а в индексе просто делается несколько app.use для каждого набора роутов.
работать не больно, и можно достаточно хорошо расширять систему.