ARM32 has "ARM hell" with multiple extensions but they've mostly fixed this in ARM64. You can definitely have compatible ABIs at the level users care about, namely application binaries.
Multiple vendors means price competition too.
IMHO the major stumbling block for ARM64 vs. X64 is that X64 has so much existing market share. Installed user-base is very powerful and everyone knows X64 will work so why take the chance? Hardware is cheaper than IT person-hours.
If someone fielded an X64-competitive ARM64 multi-core chip at a competitive price point it would probably get some traction.