Edenthiel wrote:
But for someone just starting out (or someone who is interested in processor design), the state of individual bits can be enlightening, no?
Learning the assembly language for one or more processors is quite enlightening. Being able to convert an assembly language statement to machine language just goes along with learning assembly language. Programming in assembly language is useful, but programming in machine language is very rarely needed. If you need to do that, you would probably be better off if you just used a disassembler (I used to have disassemblers I wrote for the PDP-11 and the IBM 360/370) to convert the machine language back to assembly language.
Remember that there is a one to one correspondence between assembly language and machine language (not counting macros). There would be no advantage whatsoever from trying to learn to use machine language directly instead of assembly language. If anything, it would seriously hamper the learning curve. About all it would likely do is discourage the user.
But assembly language is very interesting. And if you are good at details, it is a joy to learn.
As far as being faster than other languages, with today's modern compilers it can sometimes be very difficult to write assembly language code by hand that is more efficient than that produced by modern compilers.
That said, have you ever heard of Steve Gibson? He writes (or at least wrote) programs for Microsoft Windows that use assembly language with extremely good results. See
https://www.grc.com/smgassembly.htm.