40.70 exists for A1200/3000/4000D&T.
The difference is only the SCSI.DEVICE.
When they started to chip the 3.1 ROMs they got feedback about deadlooks from HDDs.
The lastminute change .. they shiped ROMs with a older scsi.device which seems to be more stable.
V40.68 ....
Exactly. The same sort of problems also existed for the A600/A500/A2000 ROM version. The scsi.device V40 crashed during the interrupt handler initialization, which is why the A600HD had scsi.device V39 in ROM.
As far as I know the final ROM changes to V40, through 40.70, all came about because the unified SCSI driver required further testing, but as Commodore was approaching its final days, time and resources were getting scarce.
It may have been a risky to build this unified SCSI driver in the first place. Because of the range of hardware it supported (A590/A2091/CDTV SCSI, A3000 SCSI, A600/A4000/A1200/CD32 IDE, A4000T/A4091 SCSI), the internal dispatcher code had to work very differently, too. The SCSI variant required a handler Task and an interrupt handler, and the IDE variant needed just an interrupt handler, but a different one from the SCSI variant.
What broke the V40 scsi.device for the A600/A500/A2000 was that the driver initialization code passed an uninitialized register, which would have contained a Task pointer in the SCSI variant, to the respective setup code. Out of curiousity, I tracked down and fixed this bug, and the resulting driver worked fine.