Je sépare clairement la définition de bibliothèque et d'API.
L'API est une interface qui est independente de son implementation, la bibliothèque en elle meme.
Quand tu ecris une application, le point important est l'API. Si tu fais de la programmation a plusieurs processus en mémoire partagé, tu peux avoir envie d'utilisé l'API pthread. Apres que les pthreads soit implanté sur ton systeme par la nptl, Marcel ou je en sais quoi, tu t'en fous. Ce qui va changer ta façon de programmer, c'est l'API, pas la bibliothèque.
Un autre exemple: wine, c'est une implémentation de l'API win32 pour linux. Quand tu programmes a travers l'API win32, tu programmes autant pour windows que pour wine. (Pourvu que les deux moteurs d'execution partage la meme interface de programmation)