reboot and halt have a history of being less graceful on some systems, and I've been bitten. For FreeBSD, I think reboot skips shutdown scripts, doesn't notify all terminals, etc; just kill everything, sync the disk and reboot.
That's not ungraceful, but it's not exactly pleasant.
OTOH, my openwrt device doesn't have a shutdown binary, just a reboot binary.