yeah backwards compatibility is 90% of it. 

arrays are helpful when you want to create stacks of middleware that are reused in multiple routes. otherwise, you would have to compose them into a single middleware (slower) or iterate through the array (ugly).

but multiple arguments isn't a big deal to me since you can just do `.get(cb1).get(cb2).post(cb3)`.