Using our for a var that hadn't previously been declared with use vars would raise an error. As would attempting to use a global mentioned in use vars, without also having scoped it using our.
The difference between use vars and our is that the former allows a module's variables to be used from outside the module.
# Would warn if Data::Dumper used 'our' instead of 'use vars'.
local $Data::Dumper::Useqq = 1;
Your idea would reverse the purpose of use vars. Instead of allowing a variable to be used outside the module, it would prevent the variable from being used outside the module.
The underlying idea is good, but you'd need to use something other than use vars.