In early versions of Oracle, a checkpoint was pretty much "one thing", it happened based on a timer or a log switch.
Well...times have changed....and a LOT has changed with it.
There are all sorts of *different* kinds of checkpoint, some which impact the whole database, some that impact just some objects etc etc ....It is much more fluid.
Some good reading in the "Addendum" section here
https://jonathanlewis.wordpress.com/2007/04/12/log-file-switch/ but it's a moving target - checkpointing in some way shape or form is always going on in the background