Why a separate dataset when public and not private ?
Public, private, no matter.
Basically:
Something should be part of a Boot Environment if it needs to rollback with kernel/userland.
A webserver, a database, logfiles, ports tree, home directories, source tree: typically you do not want these to roll back.
Kernel, boot loader, userland,
installed packages/ports: typically these you do want to roll back.
I'm going to disagree a little with
sko: it depends
what under /usr/ A lot of the base system outside of the kernel actually installs in /usr, like /usr/bin, /usr/sbin, /usr/lib, heck even /usr/local is under the /usr dataset.
So a default install to ZFS, Boot Environments will contain anything under /usr
unless it has a separate dataset.
/usr/home is a dataset
/usr/ports is a dataset
/usr/src is a dataset
They are not part of a boot environment.