I don't think it's a regex issue, because if I add an additional proxy_pass inside the nested location block, I then get a valid request. Additionally, any headers set inside the outer location block don't appear, but then if I duplicate them inside the nested location block, they then appear (just the once).
This basically means I'd have to duplicate anything in the outer location block in the nested one, which kind of defeats the purpose, and it's cleaner to have the separate same-level config.