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".
AS