To clarify a bit, assembly language is just a phrase that is used as an idiom to describe any language that is quite close (or probably the same?) to the specific hardware it is associated with. So basically the assembly language for different hardwares would be different. In any case, you probably shouldn't have too much difficulty with it if you are comfortable with traditional procedural programming (that is function calls). Only in assembly's case normally functions are just called with some kind of jump/goto statement.
But yes, I do think that being comfortable with being able to make and use different data structure, and being comfortable with understanding and implementation of object-paradigm related concepts (both basic theory and implementation) would be more useful (from a practical point of view). People generally tend to struggle with the latter or both of the previous topics (I struggle with object concepts). The third thing is that I think is that it's quite useful to be efficient with reading documentation for an already implemented library and being able to use it effectively.
I could be wrong but I don't see how someone working as a traditional high-level application developer would be using assembly extensively unless low level optimization of a program was a huge part of it. In any case, basic familiarity with it won't hurt.
But, aside from hardware specific details, I think C language also has manual memory management, or so I have heard. This is both an advantage and disadvantage depending on how well you can use it. Probably getting decent or good with that would also be helpful to making clean (less memory usage) and efficient applications.