default response status code should be set at the end
My suggestion:
[Default response status code](https://github.com/koajs/koa/blob/master/docs/api/response.md#responsestatus) should be set at the end of response, [not before route handlers run](https://github.com/koajs/koa/blob/master/lib/application.js#L147).

In my case, I'm trying to catch custom error object([Boom](https://github.com/hapijs/boom)) thrown from handlers and set response status by error type at middlewares. But I always get default 404 unless res.body is set, and I don't know whether the 404 is set by default or my handlers or middlewares.

[a known workaround](https://github.com/koajs/koa/issues/888#issuecomment-275696168) does not work now.