I use Sourcetree for both windows and mac.
When I switch branches in the windows version, any files that are present in the first branch and not in the branch I switch to are removed from the file system. This seems to be logic to me.
When I switch branches in the Mac version, any files that are present in the first branch and not in the branch I switch to are shown as newly created files. I would expect the files to be removed from the filesystem, since they don't have anything to do with the state of the current branch. Why aren't they?