If a persistent variable is declared in the header, and is subsequently changed, the value hard-coded in the header is also changed. Is this expected behaviour? I've never seen that in other programming languages. It seems odd (and dangerous) to me!
For example, each run of the following module would increment the value in the header.