Ah, I see now, thanks. No, you've followed perfectly, it's me who didn't understand the documentation for here correctly.
I just assumed here only had the side-effect of returning the project directory, and didn't take arguments. I glossed over the sense that ... can take paths below the project root. I see now that the example in the docs shows this clearly. The function I want is here, I just didn't know that I could use it like that, thanks for setting me straight! That does simplify things.