The main problems are:
1) The work yields very little, because each Assembly instruction does very little.
2) Control structures are scarce, you basically have "Jump" and nothing else.
3) The developer will need to decorate a compendium of instructions that only applies to a processor, sometimes apply only to a range of models, so it’s a knowledge that gets obsolete fast.
4) Portability is compromised; copying code from another project involving another architecture is complicated.
5) In theory a program written in Assembly is faster than any other, but this can no longer be true with new models of processors, in which your program still works but the instructions no longer work in the same way as before; who writes compilers know this long before the processor comes on the market.
Using Assembler still makes sense to access special instructions, which compilers do not take advantage of. This is the case of some mathematical optimizations, DSP controllers, hardware accelerated encryption, etc.