donc la POO n'a pas de défaut.
Il n'y a aucune solution universelle à tous les problèmes, seulement des compromis pour essayer d'obtenir certains effets (et ne pas forcément y réussir)
Ce n'est pas parce qu'un langage orienté objet
peut être, en n'utilisant pas un certain nombre de concepts, utilisé pour faire de l'algorithmique pure, que c'est la meilleure solution
En algorithmique, qui réalise l'action n'a aucune importance; c'est l'action qui compte. Le choix des principaux livres d'algorithmique, de décrire les algorithmes sous une forme pseudo-code proche du Pascal est un choix conscient et motivé. Ce n'est pas uniquement un reflet du fait que (peut-être !) les auteurs connaissaient mieux les langages procéduraux que les langages objet.
Pour obtenir les meilleurs résultats, il est intéressant de faire les choses dans l'ordre
Par exemple:
* une fois qu'on pense bien en procédural, on peut aborder les concepts
additionnels (comme tu le fais remarquer) de la POO; aborder la POO dans toute sa généralité, en première approche, est difficile. Nombre de programmeurs ne maîtrisent pas bien les concepts objet, je ne prétends moi-même pas les maîtriser en toute généralité.
* pour la programmation ASM, les transitions CISC <-> RISC sont asymétriques. Un programmeur maîtrisant un jeu CISC comme celui du 68000, avec des instructions plus puissantes, apprend facilement à découper en instruction simples; un programmeur maîtrisant un jeu RISC a du mal à tirer le meilleur parti des instructions moins élémentaires des CISC (instructions agissant directement en mémoire, par exemple, ce qui évite de faire trois ou quatre instructions RISC).
Et en plus, les problèmes de pointeurs et tout le bazar en C disparaissent en Java, même sans utiliser la POO.
Java remplace les pointeurs par une sorte de passage par référence sur des objets, oui.
En Pascal, il y a le choix entre passage par valeur, par référence (var), et puis on peut aussi utiliser les types pointeur (du moins, en Delphi, qui était enseigné pour mes deux premières années d'informatique à la fac).
C++ propose tout: valeur, pointeur, référence.