Isn't there some law about this? Law of weak abstractions or something? From what I understand, basically all program languages don't do a good job of simplifying the way to make a computer do what you want it to do. There is always some little detail/trick below the surface that the language cannot deal with or deals with in a peculiar way. So... learning how the lower level stuff works will only improve your mastery of the higher level stuff. Assembly language is as close to the hardware is your going to get. You have to read hardware manuals to actually do any REAL work in assembly, otherwise you are just writing non portable code.
Was it my my university professor, or Djikstra, or someone else who come up with this law?