I'm working on just such a thing. Can you elaborate on what some of the Leonardo's quirks are?
Off the top of my head:
Quirks to the Arduino 32u4 implementation in general: there's no Timer2 so any library or sketch that uses it won't work, the bootloader's auto-reset process can be overwhelmed by a bad sketch which can require you to manually reset to get a new sketch in (or in worst conditions you might need to use an ISP to reburn the bootloader but I think that's really rare). The various 'standard pins' are all moved around, eg. SPI is on different pins, I2C on different pins. The USB libraries take a huge whack of space so out of your 32kB you lose 4kb to the bootloader and another 3kb in 'overhead' (i.e. any sketch you write will be 3kb bigger because of the USB libraries). The TX/RX LEDs are (IMHO) handled a bit wierd and one of them is the hardware SPI SS pin, so any libraries that are hardwired to use the hardware SPI SS pin won't work.
Quirks specific to the Leonardo: SPI is only available on the ICSP pins so any shield that expects to find SPI on pins 11..13 won't work. I2C is moved as well so any shield expecting I2C to be on A4-A5 won't work.
Quirks specific to the Pro Micro: it's missing a few digital pins that appear on the Leonardo (I think it's 11, 12, 13 that are missing). I know they've released a newer version than mine, but if you have an older version, the bootloader is not compatible with Leonardo. There are errors on the schematic that may or may not be fixed now, relating to the assignment of analog pins on the digital side (eg. A8 may or may not be D8, etc).
That may sound like a lot of issues but mainly it boils down to what you are doing and if you're using certain shields and libraries. And of course, if you're comfortable modifying libraries then you can usually fix any glitches that come up there.
I'm still a big fan of the Pro Micro, and I think the Leonardo has a place in the lineup. I've just seen a lot of comments from people with problems about the SPI and I2C pins, i.e. not understanding they're in a different place. And I've seen some comments (and experienced it myself) where an out of control sketch can prevent the bootloader from auto-resetting. Then you think your Arduino is bricked because you can't load a new sketch. But it's usually fixable with manual reset (sometimes you have to get the timing just right but it usually works.)
There's advantages too, to balance it out. The 32u4 has 512 more bytes of RAM than a '328. And the 32u4 has more analog pins, IIRC there's 8 analog inputs you can use. And of course, you can take advantage of the native usb ability, to do keyboard or mouse stuff.