This does not appear to be the case.
BEGIN {
$ENV{QUERY_STRING} = 'mode=orig';
$ENV{REQUEST_METHOD} = 'GET';
}
use CGI qw( hidden );
print hidden( 'mode', 'second arg' ), "\n";
print hidden( -name => 'mode',
-default => 'default', ), "\n";
print hidden( -name => 'mode',
-default => 'forced',
-override => 1 ), "\n";
__END__
<input type="hidden" name="mode" value="orig" />
<input type="hidden" name="mode" value="orig" />
<input type="hidden" name="mode" value="forced" />
Perhaps your code is doing something different from what you think it's doing?