One of the limitations I had problems with in QEMU was the CD-ROM having to be secondary master.
I looked into it tonight and found that the limitation was in the options handling and not in the emulation code. So I wrote a small and far from perfect patch to allow any IDE device to be a CD-ROM (so that we can even get serveral CD-ROM drives).
I can now have for example primary slave and secondary slave to be CD-ROM drives with only a media in the secondary slave by running :
qemu -hda hda.img -hdc hdc.img -hdd my_other.iso -hdbtype 1 -hddtype 1.