Actually, no, that's why we have high level languages.
I wouldn't say it's unimportant, but most of the time it's not really interesting what happens below the surface.
You are right. or more correctly, you SHOULD be right...
Unfortunately, there is almost no way one can create a high performance (think multimedia) or an efficient program (think embedded) without knowing low-level stuff, even with a high-level language. People even use assembly for critical code sections, but careful high-level code optimization can do wonders if you know what's behind the scenes. Of course, for common applications, one could use "even higher level" languages like java and c# - they are so slow you shouldn't need to worry about that anyway
They are even garbage-collected so you don't even have to worry about forgetting to free something...
Btw. I guess using programming systems like Delphi or Lazarus/FPC is a great middle ground - as compiled languages have always been, in between of assembly and interpreted languages. You can have pretty fast programs without knowing arcane details of assembly, yet you can easily create them, not needing those nasty bytecode VM's i mentioned above
Anything else becomes the matter of code tweaking...
On the other side, when you use compilers that produce "real" programs, you do have performance impact if you allocate unneeded memory, provoke copying a string without knowing (see below), and such stuff. Not to mention freeing and memory leaks... Caring for such stuff helps develop good programming practices, people say...
I'd like to quote two nice articles on similar subjects. This one shows the benefits of knowing how the strings are handled (in C for this example):
http://www.joelonsoftware.com/articles/fog0000000319.htmlThis one deals with good programming practices and relying too much on help of high-level languages:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.htmlAnd well, I do find things below the surface interesting, it must be because my work primarily deals with hardware and OS intrinsics. I guess programmers approaching from the other side, e.g. from mathematics or business perspective, don't really care for all that, they just want to get their task done without tinkering with nuts and bolts of computers...