Earlier quoted context omitted.
Problem is, when you're debugging later on you need to understand what a breaking commit does (or is intended to do) before knowing what it did wrong. Let alone the code review issue. In any multi-person project, it is just as important that your commit history be readable by a third party for information as that it be useful for your own personal debugging.
That’s solved by writing good commit messages from the start. Commiting junk or WIP is an easily fixable culture problem.
By definition the actual history of your work includes WIP, so this means your commit history should not reflect the actual history of your work.