Non.
a) En partant du binaire il faudrait des analyses extrêmement complexes pour comprendre le programme. Très coûteux à écrire, très difficile à maintenir, très bogué, très long à exécuter, pour un résultat incomplet.
b) Il faudrait y ajouter des techniques invasives nécessitant de ralentir l’application par moments pour observer son fonctionnement (tel bout de code dure t-il 10ns ou 10s - selon le nb d'itérations ?). Or certaines applications ne peuvent pas tolérer cela (mixage audio/vidéo temps réel, applis médicales, financières, jeux vidéos pour championnats, etc).
c) Cela compromettrait la sécurité : certaines méthodes ont été écrites pour résister à une analyse temporelle ou pour effacer telle donnée critique de la mémoire avant de passer à la suite. Il est impossible de le deviner en voyant le binaire. Paralléliser signifie nécessairement bouleverser la séquence des événements et donc compromettre ce travail.
Donc, non, l'OS ne parallélisera jamais. En revanche les compilateurs pourront de plus en plus paralléliser automatiquement mais ce ne sera qu'un complément d'une intervention humaine impliquant des transformations plus vastes du programme pour le rendre fortement parallélisable. Utilisation de structures immuables, modèles basés sur des acteurs, etc...
Les plus gros changements proviendront des langages récents (Chapel, ActorScript, Rust, Go) et à venir, qui faciliteront beaucoup le travail et en réduiront les risques.