That's a git user's perspective and Google doesn't use git or anything analogous. Under their system, and generally under Perforce, it is never necessary to "push a WIP" because your client just contains whatever edits it contains. You never need to manually checkpoint, stash, or commit. People with multiple changes in flight will usually use two different clients, one for each change, although that is not strictly mandatory and in the perforce model you can have disjoint sets of files in multiple changes in the same client.
Anyway, TL;DR, the problems you suggest are git-specific and one solution to them is not using git.
Anyway, TL;DR, the problems you suggest are git-specific and one solution to them is not using git.