VMs and games (crossover) also bring my battery life down to 4-6 hours.
My old intel MBP would get around the same battery life when doing the same workloads (games under bootcamp Windows), it would get worse battery life sitting idle or for optimised workloads (like video playback).
Mixed workloads, I get maybe 2-3 hours more with my M1 laptop. That's not nothing, but it's not the crazy 18 hours battery life in the marketing material
Which of course should be expected. My M1 probably gets about 18-20 hours when I am just web browsing. If I am compiling Xcode projects, half that. Messing around in C in Emacs, probably 14-16 hours battery life.
The question is, what's the battery life when you're doing kernel compiles or GPGPU.
And not to beat the already long dead horse any more, but toss in some electron apps running in the background, I probably average somewhere around ~7 hours or so. I'm not convinced the 10+ hour lifetime is possible if you've got stuff like Discord/Slack/VS Code open.
But in terms of when I am doing truly evil things to it, I am surprised it lasts as long as it does, be it max CPU compiling or all of this morning when I was toying around with stable diffusion, it gets around ~4 hours or so.