i'm of mixed opinion. really, it comes down to what suits the design intent best.
checkpoints are good, too many checkpoints can trivialize content. but then most people don't finish games, so maybe trivializing content isn't such a bad thing. i guess you could try scaling checkpoints back based on difficulty to combat that problem, but then you run the risk of having taught players to expect checkpoints at certain locations, only to pull it from them and confuse them.
saving anywhere, anytime is awful. in an ideal world, it would be great. but games have bugs and players don't always play optimally. my wife hosed her game of RE because she reached a save point, saved, had next to no ammo, and had a boss fight as her very next encounter (with no amo pickups in the room). now that is design failing on a couple of levels. sure she could have played smarter, but good design would give her ways out of that situation.
saving anywhere, anytime just opens up a whole can of worms where players can hurt their own experience without even knowing it. but with experienced players, it allows greater flexibility. checkpoints allow for tighter control of the player experience.
it comes down to the game. if the checkpoints are well done, i'm fine with them. saving anywhere, i'm fine with, but i still save in safe locations (so it might as well be a checkpoint system).
one last, minor point. checkpoints could potentially help with keeping a player involved in a narrative. i know with games that are more or less save anywhere, if i take a long break from the game then come back, i am lost in terms of what is going on, and what i need to do. checkpoints generally alleviate that issue.