LED efficiency drops as current increases, due both to LED physics, and efficiency decreasing with temperature.
Some LEDs fare better than others in this, especially the high-power ones. Proper cooling is very important. A cool LED is more efficient than a hot one.
Current matters, too. A LED operating a 10mA will always be more efficient than a LED driven at 100mA with a 10% PWM duty cycle, but the real question is, by how much?
Designing a constant current source which maintains high efficiency over a wide range of currents is both complicated and expensive. It gets worse as you extend the current range downwards. For example, if you want your flashlight to be efficient at 1% power, which is usually enough to read a map in the dark, then you got two choices:
- Have an efficient driver which can only do full power, and PWM it at 1% duty cycle.
- Have a constant current driver which is still efficient at 1% of its full rated current.
The former is easier and cheaper, as you can shut it down during most of the period. But it could flicker.
The latter is more difficult, as the whole circuit has to be working and in regulation all the time, and its idle current has to be very small in order not to destroy the low-power efficiency.
In the end, the extra money invested in a smarter driver might purchase better run time if invested into more batteries instead.
Here's a simple, low-tech solution to your problem:
Use several LED sources. You could have a high-power one when you need it, and another one optimized for low power. If you use LED strips, then you could use several, and switch some/all of them on.
Human eyes perform remarkably well in low light, as long as you do not look into something bright and exhaust the rhodopsin pool in your eyes' cells. Your night vision cells are most sensitive in the color of moonlight (around cyan). You can see your feet and the path ahead with a single 5mm high brightness LED running at 1mA.