Perforrce handles this with shelving; it's a great feature and one I wish was better supported by other VCS'es
Then there's everything that branching can do, that shelves cannot. For example: history, and undoing your mistakes/experiments. Shelvesets contain no history, and tacking dates/numbers after the name is exactly the problem that VCS sets out to solve. To name one example.
Shelvesets are a hack/kludge.
> history, and undoing your mistakes/experiments.
I don't need history or undoing mistakes when I'm shelving, I need a quick server side backup to show someone else something, or to "save" my work at the end of the day when it's going to run on 30 minutes into the next day.
Branches may be superior, but a kitchen knife is superior to a pocket knife, yet I don't pull out my 8 inch steel knife to open an Amazon parcel .