Most people (including myself) do option 1. Github actually now does have an easy way to view what changed between multiple commits that were force pushed. Just look at any current PR. You will see something like
achow101 force-pushed the achow101:descriptor-errors branch from a1b4795 to 787c9ec 17 hours ago
in the PR and you can click on it to show you the diff between the two commits. This means that reviewers don't actually have to do that much more work.
Reviewers can also use the
git range-diff command to get a diff between the two force pushes.
Additionally, when you squash and force push, when someone else comes to review your PR for the first time, they won't waste time looking at things that have already been fixed by a fixup commit that will be squashed later.
So overall, it is better to squash and force push as it does actually waste less time and it keeps the commits clean.