Das nennt man "thread necromancy" :p
Muss jedoch gestehn, dass mir der grundsätzliche Unterschied zwischen "Objektorientierter Programmierung" und "Erstellung einer Library unter Verwendung von Klassen" noch nicht so ganz klar ist.
OOP ist weit, weit mehr als nur einzelne Klassen zu erstellen. Da geht es auch darum wie man Klassen aufbaut und vor allem um die Abhängigkeit von Klassen untereinander, wie diese Daten austauschen und wie man reale Probleme in Klassen abbildet (Stichwort: Design Patterns, Entwurfsmuster)
Es gibt auch Libraries, die viel mehr als nur einzelne Klassen sind. SdFat z.B. hat mehr als ein Dutzend Klassen die aufeinander aufbauen und miteinander kooperieren.
Auch im Arduino Core sind ein paar Sachen stark auf OOP ausgelegt. Die print()/println() Funktionalität z.B. ist in der Print Klasse. Wenn dann eine Klasse print() verwenden soll, lässt man sie von Print erben und überschreibt die virtuelle write() Methode um eine Implementierung zu haben die spezifisch für die Hardware ist die man gerade hat. Darauf greifen dann die Formatierungs-Methoden zu um ein Zeichen zu schreiben.
Das ist ein Fall wo man den Umweg über eine virtuelle Methode gerne in Kauf nehmen kann.