I kept wondering whether I was missing something.
I think maybe I had an epiphany just now, the last couple of sentences where the OP spoke about maintaining a clean project history suddenly made things click.
Personally, I don't want that, on the very occasional time I go into the git history what I am looking for is code history.....the story of how a piece of code arrived at its current implementation....that means I need all the commits, the "fixing a typo" commits, the "oops, overlooked a logic error" commits...
I don't want to see the history of the project when I look at git history, I want to see the history of the code.
Its messy, but it tells me so much. I can see how this piece of code arrived at its current state, who worked on it, and what they did.
The idea of git history as a way of tracking the project history just never occurred to me. Now I understand it, I definitely don't want it, but its nice to have a mystery cleared up.