Yes, you should absolutely re-use *your* secret key for communication with *various* other clients' public keys. Your secret key is your proof of identity for the public key generated from it.

The C API doesn't consider currying and, arguably, in a tuple, passing public key first is preferable.

I wasn't attempting to disallow currying, actually. My thought process was more along the lines of making the user acknowledge that they were passing the nonce by naming it `nonce` and relying on their judgment to make sure it was used only once. We can't actually stop the user from re-using the nonce so I thought it was preferable to simply make them name it appropriately. Unfortunately, yes, this does allow reordering of the nonce application but hopefully they will notice that they are re-using the nonce by naming it explicitly. I think using labelled argument reordering is poor practice anyway and had written the signatures to put the nonce last by convention hoping that users would copy that ordering.

In all cases, the nonce should be last. Whether it is labelled or not -- I can see it both ways.