This is one of those things that strikes me as an unsolved problem in game design. As Raph said in his book, players tend to gravitate towards game exploits even at the cost of their own fun. The solutions that prevent player exploits also tend to punish players for the horrendous sin of actually trying to play our game honestly. Some examples:
Save anywhere, saving your random number seed: game is predictable. Quicksave before a boss and know exactly what it will do. Quicksave before gambling in the in-game casino and know what numbers come up. Premonition as a superpower.
Save anywhere, without saving your random number seed: repeat until success. Quicksave before any risky thing, try it, reload and retry if it fails. Infinite time reversal as a superpower.
Save only at save points that are far enough apart to make save-scumming inconvenient: punishes players who have busy lives and can’t have their game held hostage until they find the next save point, and a pox upon the level designer that forgets to put one in somewhere that leads to a mandatory 2-hour play session to progress.
Save anywhere but with limited saves: without consulting a strategy guide, player has no way to gauge when to save, inevitably ends up conserving their precious saves, playing conservatively, spends half an hour clearing out an area with relative ease, accidentally wanders into an insta-death trap and has to repeat the whole process, rage-quits.
Save anywhere, limited saves, game strongly telegraphs when danger is coming: may as well have just used save points in those areas, why did you even give the player a choice that’s obvious.
Save anywhere, but only one save at a time, game deletes save upon reload so save-scumming is impossible: power goes out and player loses 50 hours of progress, tracks down and kills game designer, claims justifiable homicide.
Autosave at checkpoints: basically the same problem as save points, just without the extra button-press to save.
Can we find a better way, or at least map and explore the design space with save/load systems to quantify the tradeoffs so that the least-damaging system can be chosen for a specific application? Could we make a tool that presents a questionnaire with a bunch of options and uses the answers to spit out a functional design doc to save future designers the time and trouble of reinventing the wheel with every single game they work on?