@mcc @hyc It's very much not true, per my prior research into this exact topic, as someone who is implementing a programming language with tagged pointers. Many languages do this. I haven't had a lot of opportunity to explore hardware portability to other architectures in practice, but I can literally tell you from experience that AMD64 can handle 8 bit and 16 bit tagged pointers with the tag at the top or the bottom, all with performance similar enough that you have to run the hardware pretty ragged to tell the difference. I have graphs. Your instinct about applying rules before treating a tagged pointer as a real pointer is just... correct.
Of course, I have the freedom to declare by fiat that someone using >56 bits of address space is doing something philosophically incorrect. Not everyone has that freedom. But I feel comfortable making that a design limitation of a general-purpose programming language, so 🤷♀️
https://maddiem4.cc/blog/fuller-stack/0025-tq4ham-attaining-aligntenment