I took a look at secp internals - not enough to answer your question but enough to say that there is a nonce parameter which isn't required and in which our sign function is providing a nullptr. In my judgement that means that you're getting deterministic behavior