This doesn't help at all with deep refactoring. The "git way" of producing small, self-contained changes covers all possible changes, not just feature additions.
Good point, thanks! In my experience all big refactorings (short of a rewrite) can be done incrementally if you're clever enough, and that has a lot of benefits. But maybe doing them in another branch is a valid approach too.