--Но ведь есть return:
--http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return
Сколь понимаю это посылает клиенту ответ с предписанием перейти по другому url.
модуль "редирект" не извещает клиента, он пересылает запрос на новый адрес(но не подменяет адрес клиента на свой то есть не перехватывает ответы) и http сервер сам отсылает ответ клиенту минуя редиректора.