But okay, let's take your example as-is: you determine the "good" point is commit 1, and the ...um, other good point is commit 5?
Well, that doesn't work. I guess we have to arbitrarily ignore commit 5 and say commit 4 is bad. A bisect will show that. Then in Fossil, if you visit the /info page for commit 4, it will show its child commit 5 as fixing the problem.
Try again. Squashing doesn't solve anything here.