Yes, but:  
    def foo(name, arg=SameDefaultAsBase, **kwargs):
    def foo(name, **kwargs):
will have exactly the same behavior. I think it's better to not override the base value unless you're going to use it in your __init__, or you need the default to be different. That will make it easier to maintain the code (in case the default changes, name changes, etc).