ASM isn't necessary, but it is critical to understanding the fundamentals of how any application will work... ultimately whatever code you write ends up (most often) running on a server in the cloud somewhere, billed per cycle. people don't care enough about cost to care about quality, and not caring about quality has allowed people working in the industry to get sloppy.
Another problem of the abstractions that come with modern programming languages, frankly... the compiler can go some of the way towards making inefficient code less bad, but it can never do the job of an engineer.
The way i see it, in conventional engineering, let's say building bridges... what we do today is the equivalent to building a bridge with enormous and hideously over-spec gurders to stop the thing from collapsing.
I don't know when, and i don't know how it'll come about, but sooner or later software engineering as an industry will be forced to economise... my current goal is pretty much exclusively to be part of the proper engineering effort, and not to become part of the economisation.
Having said all of the above, as the world migrates towards less inefficient instructions sets (aarch64 and the holy grail that is riscv), there is a lot more opportunity for learning, advancement, and economisation.
Bring on the first desktop riscv compliant processor, i am ready and waiting... i'm on the brink rn of buying the microsoft devkit for snapdragon X.