To put that more bluntly, Linux battery life entirely depends on the quality(1) of the Linux kernel modules for your hardware, and those vary wildly.
Yes, what Linux does in software is a lot better tuned in many places than the equivalent parts of OS X or Windows (in case of filesystem performance, sometimes frighteningly so). None of that matters when some component in your system doesn't properly enter its sleep states, because that component will suck your battery empty.
On the flip side, if you research Linux hardware support before buying your laptop, you should get very good results.
(1) Edit: I don't mean poor quality of implementation, just incomplete functionality. There's little the module maintainers can do about poorly documented hardware.
Yes, what Linux does in software is a lot better tuned in many places than the equivalent parts of OS X or Windows (in case of filesystem performance, sometimes frighteningly so). None of that matters when some component in your system doesn't properly enter its sleep states, because that component will suck your battery empty.
On the flip side, if you research Linux hardware support before buying your laptop, you should get very good results.
(1) Edit: I don't mean poor quality of implementation, just incomplete functionality. There's little the module maintainers can do about poorly documented hardware.