Wouldn't _not_ squashing be sufficient, rather than having to keep all of the messy commits? That is, would you be satisfied with modifying history such that the commits are logically separate, even if it's not how the code actually evolved?
I don't understand the desire to squash every PR into one commit each either…
Sure, I'm not a total purist about it. What's important to me is maintaining the logical progression of a change, even if it includes some dead ends, non starters, or mistakes.
If you want to amend commits for a typo, code style fix, or otherwise inconsequential change that doesn't add any useful context for future developers, by all means go for it.
I don't understand the desire to squash every PR into one commit each either…