Lately I've been getting myself worked up over a thought that most developers use OO almost exclusively to enhance their code's encapsulation. I'm not 100% sure where this thought comes from or if I'm right. It's great that people want to organize their code and and separation of concern, cohesion and information hiding are all really great things, but it's a problem if that's all you think OO offers and go around saying you favor OO programming.
Part of this stems from some of the interviews we've been doing lately. Everyone has OO on their resume, and they all say they've used it and most say they favor it, but getting them to talk about OO is a painful experience. Even when we lead a bit and talk about "modeling" with respect to OO, they'll immediately talk about UML or use cases or databases - which all aren't too far off, but I just want someone to start talking about their domain layer and domain problems and stuff.
An even bigger part of this stems from the Web 2.0 folk. I think it's great that namespaces and inheritance is all the rage in JavaScript-land, it certainly makes it easier for me to use those libraries. But you read some of the docs or some people's blogs and they talk about OO as though it was nothing more than an IKEA shelf organizer.
Use any tool that makes your code easier to maintain, but that doesn't make you an expert in said tool.