You touched on the reason: compiling is translating one language to another. Assembly code is not changing language, just replacing symbols from human-convenient to machine-convenient, more like encryption.
You wouldn't consider Pig Latin a different language from English, it's just a straightforward mangling thereof.
Its not quite a one-to-one mapping though.
For example, there are assembly instructions which map to more than one opcode, depending on how it is used and opcodes can have various flags that change its encoding (prefixes and such), like the MOV x86 instruction. Beyond that, it is also rare to find assembly code which does not make use of macros or assembler-implemented pseudo instructions.
http://stackoverflow.com/questions/2546715/how-to-analysis-h...
Compiling is just translating source code in one language into code in another.