You are right, the delay seems to be caused by the probe for the second drive. After you said it is a kernel problem I looked and there seems to be a workaroud implemented in the kernel:
The kernel checks for "flash" based on "id->model" in ide.c.
At this point id->model seems to be empty for my smart media cards but if I use id->cyls (this can of course not be used in general) to detect the smarmedia the delay and the probe for "hdf" is gone. Is there an acceptable way to detect smart media at this point?
Weirdness on: During my experiments things suddenly stopped working even with the original kernel. Inserting a smartmedia card would instantly cause hda to spin down and lock the system. I found that the existence of smartmedia causes persistent (across boots) changes to the bios that I cannot undo i.e. the following can not be tested from a "clean" starting point.
a) a NEW!! bios entry appeared for "third ide" and was set to "auto". Changing this to "none" cured the spin-down-lock feature.
b) ide2 at some point decided to pick irq11 instead of irq3 with the exact same setup.
c) there is a reproducible lock up problem that equally affects the original driver (it was probably present before my experiments/BIOS problems, I had one lockup which I didn't reproduce then):
Lockup for: (insert smartmedia 1) (remove smartmedia 1) (insert smartmedia 2)
No lockup for: (insert smartmedia 1) (remove smartmedia 1) (insert smartmedia 1) ...
No lockup for: (insert smartmedia 1) (mount /dev/hde1) (umount /dev/hde1) (remove smartmedia 1) (insert smartmedia 2) (mount) ...
i.e. to get the problem you need two smartmedia cards and shouldn't mount them, which doesn't occur in normal use... .