Re: You can "learn" assembly?
... Yes, and no.
Yes, assembly is tied directly to the architecture, so varies accordingly. Learning one is NOT learning all.
No, because there is a paradigm, a way of thinking, that is different from higher level languages. Once you learn how to program in machine language, moving to a new machine is mainly just learning the architecture, syntax and op codes. I know, that sounds like all of it, but it's not really... There's that difference in thinking from other languages.
I was lucky enough to have access to a very simple machine when I was young, an IBM 1620, where I was able to teach myself its machine code. In spite of the fact that it was a register-less system, applying the understanding to new CPUs has never been a problem for me. Generally takes me about a week to get comfortable, a month to get proficient.
Then again, I'm one of those weirdos who LIKES programming in assembly. So maybe my experience doesn't count.
Anyway, I agree it's not a language per se, but I feel that knowing a machine language gets you closer than only knowing only high-level languages. (Or 'C'. Which is basically an abstraction layer over machine language. IMHO. Still protects you from the underlying architecture.)
Sorry you don't like it; you are in the majority. Your contempt is noted.