Inline assembly means you have to have the assembly code for
each
supported platform in the code with all the conditionals to the
compiler. Having separate files is often much easier to manage
and to
build from.
No, that's a completely orthogonal issue: You can easily have
architecture dependent code in separate modules.
The point of an inline assembler is that the compiler knows
things like field offsets and so can provide useful features no
external assembler can. It can also inline the assembler code
eliminating any function call overhead. Your ignorance doesn't
make these things misfeatures.