The behavior of getting the value from the existing tcl var if the formvar is optional and not present in the form seems very confusing and a potential source of silent errors to me.
If we are to change this behavior I'd rather see it give an error because, well, it probably is an error. At least I wouldn't recommend depending on this behavior as being good programming practice.
I agree with Tom, though - we need to take great care when we change core APIs because real live production code lives and dies with our toolkit. Just silently making a change is a big no-no.