I agree with everything in this thread, I think.
A recent example that I am glad was not squashed when merging is Add `#:indent` to `write-json` [reprise] by LiberalArtist · Pull Request #4686 · racket/racket · GitHub, which consisted of four commits:
- [json]: Add `#:indent` to `write-json`. · racket/racket@92ba659 · GitHub
- json: add tests for `#:indent` · racket/racket@d10c2fc · GitHub
- json: fixup indentation of objects · racket/racket@6f8824d · GitHub
- json: remove `#:indent` test datum 2155a30 · racket/racket@7e9b9c6 · GitHub
The first commit was written a year before the rest and by a different author. (I did squash the 11 commits from the earlier PR when picking it up.)
I'm especially glad the third commit was not squashed because there was a lot of discussion in the earlier PR and at Json Beautifier - #2 by LiberalArtist about exactly what behavior the #:indent
option should implement. I imagined it could have been horribly confusing to the future bug-hunter not to note in the history the subtle change from the almost-correct behavior.
The last commit was a more marginal case, but the underlying problem confused me enough to err on the side of being explicit.