Not many people program microcontrollers in assembly language. Compilers are very good at generating machine code efficiently. In other hand microcontrollers are also fast enough to overcome some some excess code with speed. But if you really want to be good at microcontrollers, you need to understand what is going on inside. Assembly language allows to see how program runs inside MCU instruction by instruction. Sometimes understanding how processor operates in low level it might be easier to adjust your high level program like C to be close to perfection.
To program in assembly might be real pain, but sometimes you may need to write routine o part of the code to get exact timed behavior as you need. For instance very efficient DDS signal generator where every cycle counts. Yasp have built web based assembly language development environment where everyone can write assembly program, debug and even see it running visually on board image. Here you can get generic basics of assembly language without any setup.