I think that the first question to ask oneself is "why do you want to learn assembly language?"
If you want to learn to write programs in assembly language or to debug disassembly of programs written in higher languages, then learn the language for the platform that you want to target. This also covers the "I want to write/understand retro stuff" case.
If you want to understand how high-level programs are compiled into assembly language, then read Aho[1].
If you want to understand how algorithms are implemented in assembly, read Knuth[2]. Knuth invented a hypothetical computer "MIX" with its own assembly level instruction set and I believe that MIX has actually been implemented in software several times.
If you just want to play a little bit with assembly, "dipping your toes in the water", then I agree with the OP that 6502 is simple and easy to learn, but it is not practical for many modern use cases and has sharp edges.
I would recommend against learning MIX, and instead learn the successor, MMIX. MIX was designed in the 1960s, and as a result includes things that simply don't make sense today. For example, the number of bits in a byte is not specified. In fact, MIX is agnostic to whether or not it is a binary computer or a decimal computer! I believe for binary machines MIX says there are 6 bits in a byte, and for decimal machines there are two digits in a byte. Words are not uniform: a word consists of 5 "bytes" and a single bit, used to indicate the sign of the number. MIX has no stack manipulation instructions, and subroutines are implemented using self-modifying code. As in, in order to call a sub-routine you take your return instruction point and write it to a jump instruction in the sub-routine so it will jump back to where you want.
Back in the 70s I was fully aware that learning computers was the key to the universe. And if you wanted to learn how computers worked, you have to learn assembler. And if you want to be more than a beta programmer, you had to learn assembler.
> Knuth invented a hypothetical computer "MIX" with its own assembly level instruction set
I never bothered with that. Why, when real computers are available? MIX is a waste of time.
> it is not practical for many modern use cases and has sharp edges
All CPUs have their sharp edges. Like learning to use a milling machine, you don't want to drive the cutter into the vise. Sure, the 6502 doesn't have a divide instruction, but writing a divide routine is a good start to learning how to make the 6502 dance.
If you want to learn to write programs in assembly language or to debug disassembly of programs written in higher languages, then learn the language for the platform that you want to target. This also covers the "I want to write/understand retro stuff" case.
If you want to understand how high-level programs are compiled into assembly language, then read Aho[1].
If you want to understand how algorithms are implemented in assembly, read Knuth[2]. Knuth invented a hypothetical computer "MIX" with its own assembly level instruction set and I believe that MIX has actually been implemented in software several times.
If you just want to play a little bit with assembly, "dipping your toes in the water", then I agree with the OP that 6502 is simple and easy to learn, but it is not practical for many modern use cases and has sharp edges.
[1] "Compilers - Principles, Techniques and Tools", by Alfred V. Aho et al. https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniq...
[2] "The Art of Computer Programming", Volume 1, by Donald Knuth, Section 1.3 "MIX" (p. 124 in the 3rd edition) https://en.wikipedia.org/wiki/The_Art_of_Computer_Programmin...