We use MultiSCM to check out multiple git repos before building. The polling for changes works fine when the workspace from last build is still present, but if we add a post build action to clean the workspace, MultiSCM will always start a new build even though nothing has changed.
However, a workaround is to only delete all files in the workspace but leave the workspace directory intact. Then MultiSCM will do the right thing and check for real changes.
It's pretty easy to reproduce. Make a job that uses MultiSCM to checkout a git repo, then use the Workspace Cleanup plugin to clean it up afterwards and set it to poll for SCM changes every minute. It will start a build every minute even though nothing has changed. But if you use the Git plugin directly, without using MultiSCM as a proxy, it will not build every minute.