Wow, many question raised. I'll try to answer them, but first I'd like to say, that my intention was not to cause panic or hold Dave liable for this. I just wanted to warn people of this issue and remind them that it's always a risk unless you exactly know, what is going on inside.
OK, here's my experience.
The safest "upgrade" method is to backup flash memory and modify just the fields that are needed to modify. You can do it through external programmer or JTAG, which I beleive is the way how they do it in production.
I didn't use any "command" method (serial or USB) because I didn't find it reliable. To be honest I have only little experience with USB, but I have some bad experience with serial cable. As I didn't monitor the serial communication between my laptop and scope, I can't exactly say if the problem was terminal software which I used (HyperTerminal, Realterm), cable, my serial port or SCPI command implementation inside firmware. I'm only sure that I didn't hit Enter key accidentally and the data gets corrupted even so. Another thing is, that sometimes I get different answers from scope for same commands. The good example is :INFO:MODEL command. Sometimes you have to perform it several times, till the new value is written into flash. The same problem with another command which writes HW revision into this area. And finally... I didn't like the fact, that even if you hit Enter by mistake, the whole part of flash is written by "random" data. It makes me think, that command implementation inside is not done well. The firmware should be immune to these mistakes. These are the reasons, why I gave up on these "command" methods totaly and did it another way.
@dimlow
You are on the good way to ruin your scope totally
Be caferul, there is limited space for model and serial info inside flash and I don't know, if the string is truncated before writting into flash. Right after these fields there are other vitally important data (HW revision, and others)...
Anyway, let me know, when you need repair