The password and password_confirm fields do not handle empty values very well (at least in D6). When you submit a settings form that contains a password / password_confirm field, you have to enter the password every time you make a change or it will reset the variable entry to empty string. It seems like this applies to any situation where you have module settings that automatically get saved to variables when the form is submitted.
This is resulting in bugs (issue 3 below) and also questionable practices (the passwords and some API keys in the other ubercart payment gateway modules are textfield instead of password because of this).
Although the User edit account form behaves well, it is not the same kind of form as these settings forms, so the same solution doesn't really apply very well. Really, it shouldn't require any (or at least any significant) work to make your password field retain its old selection if you don't enter a new value. I'm fine with adding a new field parameter that indicates the field is "optional" in this sense, where a new empty value results in no change.