With dynamic scoping the concept of global and local is abolished. Full control is given to the programmer. If one wants a different scope one has to explicitly create it. Once created, anything in that scope behaves as expected without magical implicit omissions or additions.
Scheme can be made to create similar non-functional side effects with (set!), but this is more complex and less useful than dynamic scoping.