yes, that line is valid, but it doesn't do what you think it does. It will unset a variable named local. It won't have any special effect on variables in local scope
> local a b c d e f g h i;unset a b c d e f g h i
no, it will not mean this, because unset will already unset variables in local scope first. So, it doesn't do any good to ask it to.
> if yes, how come local=9 is valid variable 'local' normally ?
because variable names aren't treated the same as commands in bash.