This is one of the many reasons that I regret the current hegemony of just a couple of dominant platforms that have broadly similar semantics for a lot of historically diverse platform details. I teach a systems programming course at the University level, and many of the points that I harp upon as architectural concerns (endianness, alignment, signedness being examples) are simply not a concern for students who encounter only x86-64 and ARM on any regular basis.
Not that many years ago it was perfectly usual for a typical programmer to encounter SPARC (big endian, very picky about alignment, unsigned char), PowerPC (default big endian, moderately picky about alignment, signed char), and x86 (little endian, alignment only a performance detail, unsigned char) on a daily basis, and various other platforms (Alpha, ARM, M68k, etc.) depending on position and project. Now, the whole world is little endian, indifferent about alignment, and unsigned of char.
While in some sense it’s nice to be able to ignore those details, from a practical perspective, it seems obvious that it’s going to either constrain future platforms or bite back when some platform of different behavior rises in popularity. RISC-V, for example, is picky about alignment. I know that in the 1990s when a lot of wintel (and software born on x86 Linux) was being ported to PowerPC and other platforms of differing details, I know this caused a fair amount of consternation. I’m too young to remember the Unix Wars or the true proliferation of workstation architectures in the 80s, but of course portability was a huge concern, then, as well.
The TL;DR is that I think the programmers of the 201x/202x years are going to be in for a rude awakening if we ever achieve a diversity of architecture like we enjoyed at the end of the 20th century.