once Causes the value of the question to be set only if it is empty. On subsequent form loads, it will be non-empty, and so once returns the existing value.
I don’t know why that would happen. I suspect there might be just a little unrelated mistake somewhere.
In the original version of my post above, there were curly quotes rather than straight ones around the date format string: ‘ rather than '. I’ve fixed it now… maybe try if that was the problem?