This can be easily explained
Back in the days when the Amiga was designed, CPUs didn't have a "memory management unit".
Today, every program gets its own virtual address space. Therefore, every program can pretend that it is located at a fixed address. It cannot access the address space of other programs (processes). They themselves can believe to be located at the exact same address and it doesn't matter as they don't interfere.
In order for programs to work together in a multi-tasking environment, unlike DOS where only one program could run at a time, they had to be "pc-relative". "pc" stands for program counter. It's a register of the processor that determines the position of the current instruction. When your program got loaded and executed, you had to access your data relatively to the program counter (that is, relatively to where in the address space your program was loaded into).
Say, your program's start address was at 0x0000. Say the data was located at 0x0100. Now, if your program was loaded into address 0x2000, then your data was located at 0x2100 (for simplicity I used 16-bit addresses, though the 68k used 32-bit).
By accessing your data relatively to the pc-register, your programs became independent of the memory locations they were loaded into.
Some idiots never managed to program properly. Their programs were always accessing fixed addresses (most demos, for instance). If there was something else at those addresses - boom!
As has already been previously stated, the SCSI implementation was broken. Likely, some idiot forgot a fixed address somewhere. By running the clock first, you allocated a certain address space, guaranteeing that whatever came afterwards was pushed further up in memory.