I really don't see the point of squashing commits. I know, everybody would like to look like they write perfect, concise, error-free code the first time. But nobody does - and that seems to be the primary purpose. If you want to see the set of changes that implement a feature, it's not that hard to come up with an incantation of git diff -r that will let you do that - and that kind of forensics as far less common - not something you should contort your development process and spend work on to optimize. So it seems to me, the main point of making commit history pretty is ego. Which is a silly thing to get excited about.
-Tim