For EOS I normally use BTRFS with the standard Subvoumes of @, @home, @log, @tmp, @cache. I know the “Standard list” changes now and then.
This seems to be driven by using snapper and btrfs-assistant as the snapshot method. Particularly when grub-btrfs is uses to boot snapshots. Something to do with booting read-only snapshots.
However, what about using Timeshift as the snapshot method? It creates read-write snapshots and only cares about @ and @home. You may get into trouble if you modify some files while booted into a snapshot, but if all you do is run timeshift to restore an old snapshot, I don’t see the problem.
If I use timeshift I don’t see the need for any subvolumes besides @ @home, and possibly @libvirt so KVM images can be tagged NOCOW and not clog up your snapshots.
The reason for having a separate subvol for /var/cache(@cache), is that you don’t want cache in your snapshots. Since it changes at a high rate and saving the data has little to no value, you are just wasting disk space by including it your snapshots. Having a separate subvol solves that problem.
For /var/log(@log), it is so if you roll back a snapshot, you won’t alos overwrite the logs and you can investigate what happened.
You may need to create a separate subvolume for /boot/grub as all grub files and boot menus are stored in /boot/grub. Otherwise, restoring the /@ subvolume will also restore old Grub config, including older snapshot list without the separate grub subvolume. However, you can manually run grub-mkconfig to overwrite old Grub config.
My head mixed up Grub and Limine bootloader with a new custom Snapper integration tool, which led to my wrong suggestion about creating the Grub subvolume.
For Limine, I know that the snapshot list and other multiboot configs should not be restored in the boot config outside the root subvolume, only corresponding kernel versions need be restored for booting after the restore.
But the Grub config does not separate these different things within the root subvolume.