Non vedo nulla di nuovo o di non noto: se vai ad usare estensioni proprietarie quelle funzioneranno solo sull'hardware che lo implementano. X86 come ISA è piena di istruzioni proprietarie, molte defunte, provenienti da più produttori distinti. L'importante è non forzare via codice o via compilatore un istruzione proprietaria senza essersi assicurati prima che quella sia interpretabile dal traduttore in micro-codice di una data architettura. Il compilatore Intel se usato correttamente non lo fa (anche perché creerebbe impossibilità di esecuzione sulle CPU intel stesse di diverse generazioni o anche della stessa ma di revisioni o famiglie diverse). Ovviamente alla Intel lavorano appunto alla Intel e non vanno ad implementare istruzioni proprietarie delle architetture AMD. Ovviamente alle porcate via codice non c'è mai limite ma il compilatore non può sostituirsi alla testa del programmatore (non è il suo ruolo).
Su x86 almeno c'è una base molto solida di istruzioni condivise fra più produttori hardware, con comportamenti ben noti e prefissati, su ARM invece tutto diventa più fumoso a causa della mancanza di rigidità dell'ISA, certo con ARMv8 ci hanno messo una pezza ma rimane un ISA nettamente inferiore su tutti i punti di vista (e per una volta concordo pienamente con Linus Torvalds
https://linux.slashdot.org/story/16/10/ ... 6-over-arm). Istruzioni impopolari e non condivise fra più produttori alla fine muoiono sempre, ed accade di continuo ad ogni nuova architettura e persino ad ogni sua revisione, solo che sono spesso cose che passano inosservate ai più e che interessano solo agli sviluppatori del back-end dei compilatori.
Ricordatevi che l'ISA determina solo il binario, non il microcodice o l'architettura hardware.