History is only immutable once it's committed to Fossil, and anything not committed is lost forever. This may sound banally obvious, but I think it's fundamentally the problem with Fossil's approach. With git I essentially commit my entire undo/redo stack. I end up discarding most of that later, while with Fossil I would never have committed those intermediate versions in the first place.
Without history rewriting, the rewriting simply takes place before committing instead of after.
Without history rewriting, the rewriting simply takes place before committing instead of after.