A única coisa que ficou de dúvida é que quando utilizamos o express-load para carregar os requires de routes e infra automaticamente, removemos do arquivo app.js a linha var rotasProdutos = require('./app/routes/produtos')(app) que passava app como parametro. Em produtos.js o modulo continua recebendo app como parâmetro da function, não entendi como continua funcionando.