I’d think so, and for the reason you state–snapshots belong to datasets, so destroying a dataset also gets rid of the snapshots.
I’d vote for “manually,” but with a pretty prominent GUI warning that a checkpoint exists–if it were up to me, I’d put it as a banner across the top of the page.