I don't see how this is going to be that efficient.
What colour are the LEDs? If they're blue, white, violet or any phosphor converted chemistry, then a supply voltage of 3V, is close to the normal forward voltage and won't guarantee constant brightness, over the temperature range and life time of the LEDs.
The 74HC595 has a fairly high output impedance with a supply voltage of 3V and it will probably have a positive temperature coefficient, like all CMOS devices do, so the output voltage will drop more, at higher temperatures.
You say the supply voltage can vary between 3V and 5V, so what voltage are you going to set the output of the buck converter to? If you use a controller which can run at 100% output duty cycle then you could set it to 3V and accept there will be a small voltage drop, when the supply voltage falls to just over 3V.