As you note, defrag at boot time allows you to move files that are normally in use by the system after boot. There is actually one case where these files need to be moved... if you are attempting to Shrink a partition to recover space for other uses. Say your C: drive needs more space and you wasted a lot of junk that can be removed on an F: drive. I used to be able to do this, but in Windows 2008, I might free up 75% of the space on a drive and end up only being able to Shrink the drive to half the size. It sounds like the -b option now works against any attempt to help free space at the end of a drive, so it can shrink, by moving program files out.
I find virtual disks are constantly in need of such maintenance when space gets tight. Oh well, at least in Hyper-V I can compact a dynamic drive to recover the empty space in the middle. It just introduces a false sense of capacity when you look at what the VM thinks is available.
Would be nice to know what operating system, as defrag changed significantly from XP to Windows7, in XP you have to use a Microsoft utility bootvis to optimize boot files, W7 does this natively in its defrag routine. – Moab – 2019-02-22T16:04:45.987