Even though I didn't check the C code, I can tell that you're using a stateless method. It is of course compiled in C and executed as a C method.
By the fact it runs without a state, and it's not only in godot but also in compiled languages, when a method is called with parameters, the application has a stack for this call. If in another thread there's a concurrent call to the same method, there is another stack for this call. Or, should I say, there's a big stack for all calls, and the cpu knows where in the stack it needs to seek the values. Therefore there's no risk of concurrent conflict for local variables or parameters.
By the way, you should check about recursive functions. The concept is a method that call itself until a condition is reached. And each recursive call is put in a stack until it goes out the function and returns to the previous call where it was. It illustrates well how calls are managed and how it can run out of memory if too many calls pile up.