For example, I've never liked IPT and I believe the way you set up pf(.conf) makes a lot more sense and is easier to understand. You can work somewhat around that (and vice versa as well via pfctl) but I prefer PF. YMMV.
Things like ifconfig and ip differ per *NIX which is bloody annoying. The macOS ifconfig and route differ a lot from the Linux one, for example adding a default gateway in Linux and FreeBSD with the route command requires different syntax/argument and just typing route on macOS doesn't yield the current routes (cause logic). As much as there is a learning curve involved, iproute2 is a great solution to simplify. There's even iproute2mac for if you're accustomed to iproute2 on Linux. It is a wrapper for ifconfig/route/etc though advanced arguments don't work.
Systemd has the same problem iproute2 has: a learning curve of an integral part of the OS.
As for snapshots, Windows, macOS, and Nix have that as well.
Personally, I love the macOS desktop (and Mac in general with UNIX under the hood) but something like i3wm would also do the job. And I bet it'd run just as great on FreeBSD.