If you read about udev, you will see, that it is clearly not their idea to give static ordered device names to devices because it's not useful at all.
You don't need static devices names like /dev/sdd, you only need udev rules, which handle the attachment of mass storage devices, one could look like:
BUS=="usb", KERNEL=="sd?1", SYSFS{idVendor}=="0204", SYMLINK+="myusb1", RUN+="/usr/local/bin/usbkeystuff"
which adds a symlink /dev/myusb1 to the device that is attached if the vendor is 0204 and runs a script additionally. There are other identifiers for each device which you can use for your usb keys on plugin.
[edit]
to differ between plugged in devices there are udev variables like %c, %k and you can even set own variables when a rule is matched with the ENV{myvar}="value" key or use it as parameter for your script in RUN.
[/edit]