How do LED keychain flashlights get away with no dropping resistor?

The main reason is that the "coin" cells these flashlights use have enough internal resistance to limit the current to a safe or nearly-safe value. And most of the time the battery's internal resistance usually rises after a few seconds during use, then recovers after giving the battery a break - this will usually keep the LED from overheating. Also the battery can heatsink the LED, permitting operation with current a little above the LED's rated limit. I have seen some units where the current reached levels that I would call adventurous - especially in Photon models with blue, blue-green or white LEDs. However, you need really heavy use with constantly fresh batteries to damage the LEDs - and any significant LED damage if such currents are sustained will probably take hundreds or thousands of operating hours. I consider it a safe bet that few users of these lights will log 500 hours of use with highly fresh batteries in a lifetime. Normally, the battery can only provide current in excess of the LED's maximum rating for a few minutes. Also, it is not easy to notice if the LED deteriorates to even half its original performance. But if you do notice any fading, chances are something like 99 percent that it will be due to the condition of the battery rather than the condition of the LED