All browsers support setting WaveShaperNode.curve multiple times, see it in action e.g. here: https://jsbin.com/vagevo/edit?js,output
The specification does not allow for this: https://webaudio.github.io/web-audio-api/#dom-waveshapernode-curve
If new curve is not null and [[curve set]] is true, throw an InvalidStateError and abort these steps.
I will raise an issue over at the specification, let's see where that gets us.
In the meantime, I would not oppose following the browser behaviour and allow for updating the curve