Chip erase fails if called after write fuse wth AVR ISP commands

I realized that if I first write fuse values (LF, HF, EF) and then perform a chip erase, then the chip isn't really erased. Writing to flash and reading it back and compare yield differences. If I reset and re-enter programming mode after write fuse, then chip erase is successfully performed and I was able to write to flash and then read back and compare to match.
I read the 328p doc and didn't find such re-entering programming mode was required. Anyone with a more detailed description of how each command works than the 328p doc? Thanks.

BTW, I use polling to determine whether I can move to the next step, both for erase and write.

There’s comment in the data sheet:

Latching of Fuses
The fuse values are latched when the device enters programming mode and changes of the fuse values will have no effect until the part leaves Programming mode.

westfw:
There’s comment in the data sheet:

Latching of Fuses
The fuse values are latched when the device enters programming mode and changes of the fuse values will have no effect until the part leaves Programming mode.

Thanks westfw! I noticed that after i realized that my fuses didn't change values after I write to them. That's taken care of. What I meant was if I write fuse (essentially writing the save value to the fuses) and then erase chip, chip erase fails. That's not in the doc so I wonder where to look for guidance.