Of course you can, one of the nice things about software raid is you have that flexibility. However the popular opinion is you cant do it or shouldnt do it, why? because its the mindset of hardware raid users which dont have an option to work that way so they carry on working the way they always have.
I should also clarify not using whole disks does "not" prevent write cache from working on devices, not only do I know this from experience but its also in the source code.
By default many OS's that let you use ZFS in the installer, all the ones I am aware of do "not" allocate the whole disk, they instead partition the disk and put the pool on a partition, Proxmox even lets you specify the size of the partition.
There is downsides, e.g. its bad if you run scrub -a so one disk would have multiple scrub's running on it, so stagger your scrubs, it might also cause confusion with managing multiple pools.
I will provide an example of where you might want to do it.
Lets say you have two 8tb disks, and you also have two 3tb disks, you dont need to spend the money on an extra two 8tb disks, and you want raidz2 redundancy, so what do you do?
You could create a 3tb partition on all 4 disks, and set it up as a 4 device raid2 vdev, it would have 6tb capacity.
The two 8tb disks would have around 5tb free which you could leave empty for now or choose to also add a 5tb mirror on them. Then at a later date you could retire the 5tb mirror and replace the two 3tb disks to expand the raidz2 to 16tb.
Its this kind of flexibility which I like about software raid, its kind of outside the box, and hence the opposition.
You will almost certainly have to do such a configuration manually though so get comfortable with a partition editor and use of the zpool command.