Some microcontroller families have more than one to a number of different start addresses and/or they use the same address and switch in and out address decoding based on strap pins so that you can boot from one bootloader created say by the vendor, or the users bootloader or the users application. (allowing you to recover what would normally be a bricked system).
You could envision the same thing. Think of how these microcontrollers work by having to do the work outside the core to change the flash bank being used to boot from. By using this strap pin on the core, you could have an alternate bootloader at a different address, this bootloader could be used to re-write/manage/develop/rescue the primary application.
You can also possibly avoid the rom/ram vector address thing. say for example you boot from flash on the high vector and have ram at 0, you could then load the program into ram or at least a runtime specific vector table, then switch the bit (might have to bounce off of a trampoline to get there, I dont remember we didnt use the high vector in our chip).
Not saying that is why ARM did it, but if nothing else it makes for a simple rescue scheme for vendors. some of the vendors rescue schemes or alternate boot methods are overcomplicated. I would actually like to see arm and others have several, at least two signals giving four addresses maybe 0x00000000, 0x40000000, 0x80000000, 0xC0000000, that kind of thing or 0x00000000, 0x80000000, 0xFFFF0000, 0xFFFF8000. Do something like that on a number of cores, esp the cortex-m, and you might see the chip vendors start to use that instead of their own schemes and it would be less of a pain when moving from one chip to another between vendors or within the same vendors product line.