Here is what I found out by looking and testing...
First, a "file" widget is one of many generic widgets that puts the type ("file" in this case) in the input tag.
So, the rendered input tag will look like this:
(less than sign) input type="file" name="upload_file" value="test" id="upload_file" size="30" (greater than sign)
As you can see, the value from your widget value definition is present in the input tag.
My only conclusion so far: that's the way file widgets work??