Understanding how tech works from a deep level is important. For example, knowing how C machine code translates to opcode executed in the userland. But one cant build all things in assembly, because in development and businesses, it's not just important to build and maintain software, but also be able to do that within a limited time frame.

Abstractions are also necessary to build complex structures. You cant build a house from sand, you need at first the concept of cement. I had to build automation in pyinfra. Unlike ansible, it has no abstraction of roles playbooks, none. Without them, no form of translation is possible to build any reliable automation. Is it supposed to be modular, how are users supposed to interact with it, none. So had to build them from groundup. So yes abstractions are necessary to an extent where it helps solve the problem better without making things overly complicated, cuz then building and more importantly maintaining things become harder.