Идея хорошая, но таинственной причине if не хочет работать с $upstream_cache_status.
Добавил просто:
add_header "X-Cache-Status" $upstream_cache_status;
Опытным путем выяснил, что с if так же не хочет работать заголовок от бекенда - $upstream_http_<имя>.
Может быть, кто-нибудь знает, почему так?