Changes made by a command in Unix cannot affect the shell the command was invoked from. This is because all commands are run in child processes. Apparently, Windows runs things in child threads?
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?