I use both methods:
On zroot pool for single drives and mirrored pairs I use the partition method as modern machines need an EFI partition.
On data pools with mirrors, RAID and both, I use the whole drive. When a drive fails, swapping in a spare of the same make/model/capacity is a simple process, particularly if it is hot-swappable.