comparing "GNU/as" with "nasm" (x86), "G/as" is very unfriendly.
Well, yeah, IIRC GNU/as doesn't come close to supporting the complex instruction set syntax that Intel defined for the x86.
But for the typical RISC CPUs, I wouldn't rate it as "very unfriendly." It seems to have all the generic features of any other assembler.
It has pretty much exactly the features needed to support gcc output, but it's really not that great for large scale writing of assembly language by hand.
For example, you can't make symbolic aliases (meaningful variable names) for registers, except by using the C preprocessor's #define.
Arithmetic expressions are also very limited, and things you'd think can be done in one expression often actually need multiple steps with temporary variables.
The support for macros is weak.
There is no support at all for defining complex data, not even structs. Good assemblers for example allow you to say that SP or some other register currently points to data conforming to some struct and then allow you to use field names as offsets.
It is a huge step down from e.g. IBM 360 mainframe assembly language from the 1970s (if not 1960s), which is so good that Apple copied it wholesale for their M68000 assembler in MPW in the mid 1980s -- it was powerful enough to allow CONVENIENTLY using and even defining and extending Object Pascal and C++ classes in assembly language.