the flag fromusb is actually used only in linuxrc (see /usr/share/mylivecd/linuxrc), and only add the disk partitions (dev/sdXn) to the list of possible source deviced for booting the system.
Later, if a device (as opposite of partition) can be mounted, CDROM is assumed, else a partition is assumed, in the latter case the script /initrd/sbin/halt.local is deleted from the live system.
At time of shutdown, the standard /etc/init.d/halt is executed, it check for existence of /initrd/sbin/halt.local, and if it exists then it is executed, but as I wrote before it's already been deleted in the case of liveUSB/liveHDD.
At this point we can insert a new check in the standard /etc/init.d/halt for a new halt.local script (say /sbin/halt.live_system), customized for stopping the liveUSB/liveHDD systems.
However, I have already made some test, trying to manually simulate this supposed halt.live_system, from my tests I was not able to manually umount the unionfs components, because the partitions are in use.
The approach of others live systems, is a little different, because at start of the layered fs, some script execute a chroot to the new rootfs (unionfs /), I think that in this way, when the chroot process terminate, implicitely any use of the uniofs will terminate, therefore allowing for an easy unmounting... need to verify about this "story".