Co se privátních proměnných týče, tak jako vývojář knihovny nechci, aby mi k ní uživatelé přistupovali jinak než přes veřejné API. Samozřejmě, že když se tím nebudou řídit, tak to bude jejich chyba, ale vysvětlujte jim to pořád dokola.
A co se přepisu metod týče, tak to naráží v situaci, kdy se dvě knihovny rozhodnou přepsat stejnou metodu a já chci použít obě. Třeba Rails by se dalo těžko použít s jinou knihovnou, která by přepisovala stejné metody.
Mantra „If you don't want to do something, just don't do it.“ se bohužel dá použít jen v situaci, kdy všichni vývojáři hrají na stejné straně. Při vývoji knihoven to je ale tak, že musím respektovat ostatní knihovny a někdy bojovat s uživateli.