I'll reply to both this and your downstream comment here for simplicity.
> Why do you feel that you _have_ to be able to
> correct history? The past is immutable. Fossil
> treats it as such.
Opinions differ on what aspect of the past should be made immutable.
Should we be recording every single one of your keystrokes in a commit?
How about just every time you hit "save" in your editor?
Git takes the view that making commits is just like hitting "save" in your editor, it's not inherently an operation you want to publish as-is.
You can just as well do this with fossil, whatever the tool's guarantees of immutability I can always just cp an older version of the directory to get around it and re-do my commits, which on some level is exactly what "git rebase" is doing.
Git just makes this process that people have a good reason to do more convenient. Just like I don't want to see every single one of your keystrokes or every one of your "save" snapshots when reviewing your code I have no reason to be reading hundreds of your "oops, compilation error" commits.
Of course I suspect that you don't get much of that with Fossil in the first place, because due to this idealism of immutable history people just aren't using the SCM except for "real" work.
Which I think sucks, Git has saved me multiple times with some bug I've introduced mid-editing session because I could bisect my 100 "another snapshot" commits, commits that I then subsequently rebased into 1-5 commits and pushed upstream.
> Git allows the public record to be flexible forever.
This is just not
at all the case in practice. With Git the difficulty of rewriting history increases as a function of how widely that history is published. Fossil proponents seem to think that established history is being regularly willy-nilly written by projects that use Git.
The mainline history of git.git, or linux-2.6.git etc. is not being rewritten and never will.
What is being rewritten is locally authored commits that haven't been pushed yet, or topic branches that get deleted and replaced by other versions (e.g. with typos fixed in commit messages etc.).
You can use Git like Fossil, but most people just choose not to because it doesn't make sense.