Recs.
Updated
Specs
Pros
Pro No Magic or Abstractions
Being so close to the machine, the productivity argument is that you telling the computer exactly what to do, and can worry less about a languages abstractions and magic. This is contrasted by the need for manual memory management and other low level concerns. So while you don't worry about bugs in the "stack" (as there is none; i.e.: compiler, runtime, etc) you have to be hyper vigilant about bugs you create.
Cons
Con Regarding "Well Designed", Assembly is more an absence thereof
Whether or not you can count raw assembly (as opposed to high level assembly languages) as "well designed" is arguable, as there are no abstractions to design. That in itself is a design choice of sorts and is sometimes preferable, however this may not be what the question implies.
Con Assembly and C have direct correspondents
For each set of hardware and OS, each instruction in assembly has a 1:1 correspondence with C (even though the C instruction may do more work).