Why does the checkbox stay checked when reloading the page?
Solution 1:
Add autocomplete="off"
into the form element on the page. The downside is that this isn't valid XHTML, but it fixes the issue without any convoluted javascript.
Solution 2:
Yes, I believe it is caching. I see this behaviour on Firefox for example (not Safari, for what that's worth :) ).
you can reload the page and bypass the cache (on Firefox) using CTRL-SHIFT-R and you'll see the check value doesn't carry (a normal CTRL-R will grab the info from the cache however)
edit: I was able to disable this server side on Firefox, setting a cache control header:
Cache-Control: no-store
this seems to disable the "remember form values" feature of Firefox