Nach meiner persönlichen Erfahrung wird der Wiederverwendbarkeits-Effekt überschätzt. Eine Problemlösung, ob jetzt OO oder nicht, ist immer irgendwo zwischen generisch und problemspezifisch. Je allgemeiner die Lösung ist, desto höher ist die Wiederverwendbarkeit, aber das erhöht auch den Aufwand. Man muss da ein gesundes Mittelmaß finden, das ist vermutlich eine Erfahrungsfrage.
Ein meiner Meinung nach viel wichtigerer Effekt eines guten OO-Designs ist die verbesserte Wartbarkeit und Erweiterbarkeit. Ein sauberes Design ist robuster gegenüber neuen oder veränderten Anforderungen, und die sind leider die Regel.