No, *args and **kwargs are the catch-all arguments that receive any arguments for which there are no explicit arguments instead. Specifying defaults defeats their purpose. Instead, your example defaults can be handled with existing syntax, there is no need to complicate the function definition syntax here.
You can cover your defaults by specifying normal keyword arguments:
def foo(pos0, pos1='v', a=20, *args, **kwargs):
pass
I replaced your (1, 'v') 'default' with another keyword argument, because you can provide values for keyword arguments with a positional parameter; foo(42, 'spam') will set pos1 to 'spam'.
In addition, you can always do further processing inside the function you define; the args value is a tuple, just test for length to check if you need to use a default for missing values. kwargs is a dictionary, just use kwargs.get(key, default) or kwargs.pop(key, default) or if key not in kwargs: or any of the other dict methods to handle missing keys.