Have you considered using darcs? http://darcs.net
This SCM is patch oriented, and should allow You to do exactly what You described without any trouble. I recently gave it a try and it perfectly matched my workflow.
Despite its patch-oriented nature, Darcs doesn't really offer anything (that I could see) that Git doesn't. This is part of the reason I didn't choose it for Anarki in the first place, although it really is a fun system. The patches would still be a series of separate, interdependent patches. And I don't think Darcs even has a parallel to git rebase to squash them all together.
I totally agree that Darcs is fun :) I mentioned it here because the initial post described a workflow that fits into Darcs perfectly, not in an attempt to compare Darcs to Git.
From the Darcs official manual (the tag command):
While traditional revision control systems tag versions in the time line history, darcs lets you tag any configuration of patches at any time, and pass the tags around between branches.
I was looking into this stuff a while ago - Darcs was actually my first distributed version-control system. When I started playing around with Git, I was initially a little dismayed that it didn't seem to have the history-changing abilities darcs has (apparently called "preparation branches" - I never knew that).
I asked around a little, though, and it turns out that "git rebase -i" essentially encompasses all those capabilities. The UI isn't as nice as darcs' until you get used to it - darcs has very well-designed, intuitive UI - but all the functionality is there.
I had heard about, but forgotten, spontaneous branches. They do seem to be very much like what Cat Dancer was asking for.