I remember being told that I didn't understand the problem when I suggested using ide-scsi for everything and just hiding the transport. I get great pleasure from having been (mostly) right on that one. I still have old systems running ZIP drives as scsi...But again, please remember that these USB devices are really SCSI
devices. Same for SATA devices. There is a reason they are using the
SCSI layer, and it isn't just because the developers felt like it :)
/somewhat/ true I'm afraid: libata uses the SCSI layer for ATAPI devices because they are essentially bridges to SCSI devices. It uses the SCSI layer for ATA devices because the SCSI layer provided a huge amount of infrastructure that would need to have been otherwise duplicated, /then/ massaged into coordinating between <jgarzik's ATA layer> and <SCSI layer> when dealing with ATAPI.
There is also a detail that was of /huge/ value when introducing a new device class: distro installers automatically work, if you use SCSI. If you use a new block device type, that behaves differently from other types and is on a different major, you have to poke the distros into action or do it yourself.
IOW, it was the high Just Works(tm) value of the SCSI layer when it came to ATA (not ATAPI) devices.
For the future, ATA will eventually be more independent (though the SCSI simulator will be available as an option, for compat), but the value is big enough to put that task on the back-burner.