Sous Linux: Appli > API Windows > X > Driver.
Pour les fenêtres, c'est assez vrai. Mais je suis quasi-certain que malgré cette surcouche, on peut trouver certaines opérations du GUI (hors DirectX/OpenGL, donc) pour lesquelles Wine sous Linux, avec drivers propriétaires (évidemment, sinon on compare des pommes et des oranges), est plus rapide que Windows.
Peut-être à cause d'une lenteur quelque part dans Windows (on sait qu'il y en a, cf. les benches de Wine...), mais aussi parce que contrairement à Windows, Wine et le serveur X peuvent être compilés spécialement pour la micro-architecture du processeur sur lequel ils tournent. Et ça, ça fait une différence jusqu'à plusieurs dizaines de %. Ca m'étonnerait que Windows XP contienne du code spécialement compilé pour Core et Core 2, micro-architectures bien postérieures à la sortie de XP SP2. Et XP SP3 ne peut pas contenir le code complet pleinement optimisé pour toutes les micro-architectures sur lesquelles il va tourner: ça coûterait beaucoup trop cher en place.
magine que OpenGL soit obligée de passer par DirectX pour communiquer avec le GPU (parce que le GPU a été implémentée avec ce seul protocole en tête ou parce que l'OS y interdit l'accès direct)
(Le bruit avait couru à un moment que c'est exactement ce que Microsoft ferait pour Vista -
http://slashdot.org/article.pl?sid=05/08/06/177251&tid=109&tid=152 - mais il semblerait que ça n'ait pas été fait, ou du moins, qu'un contournement ait été pris en compte avant la sortie de Vista:
http://www.opengl.org/pipeline/article/vol003_7/ ,
http://www.opengl.org/pipeline/article/vol003_9/ )
Wine émule effectivement certains bugs de Windows, ce qui est parfois particulièrement ch*** à programmer (comportements non documentés mais sur lesquels certaines applications buggées comptent). Il est connu que Wine avait la vulnérabilité des WMF contenant du code exécutable, possibilité apparemment utile dans le début des années 1990 mais devenue une hérésie de sécurité dans les années 2000.
Mais quand le bug consiste à crasher parce qu'on passe des paramètres invalides à certaines API (et ça, les différentes versions de Windows, Vista compris, en sont bourrées: plonge-toi un peu dans la suite de tests de divers DLL de Wine), Wine ne l'émule pas
