The nest parameter is to support closures: the closure is passed in via that nest parameter. Because the caller can't always know whether its callee expects a closure or not, all functions are given a nest parameter.
A function value is represented as two pointers: the function itself, and a pointer to a struct containing closure variables. When making a dynamic function call, the closure struct pointer is passed in via the nest parameter. For a function that doesn't expect a closure, that will be ignored.
Cheers,
Andrew