Vou dar um cenário real:
Peguei um sistema aos cacarecos, sem nenhuma validação exceto no lado do cliente.
Durante uma semana, usando Prototype, fiz uma interface aonde eu encapsulava toda a validação client-side, e, ao mesmo tempo, montava um request ajax encapsulando os dados do formulário e fazia o post em um outro endereço, aonde ele ativava a validação via servidor.
Aí você pensa: Legal
Legal é você pescar as mensagems do validador do servidor, e gerar links apontando pro campo/registro daonde deu caca. Portavel e funcionando com bastante segurança em IE, Firefox e Mozilla.
Num outro cenário, um pouco mais maduro, comecei a programar módulos para funcionalidades específicas do client-side encapsulando em classes. O que faz muito sentido, se por exemplo, eu tenho uma tabela de, digamos, 1000 valores de chaves possíveis para uma busca, combinados em 5 campos diferentes, e eu quero oferecer ao meu usuário uma funcionalidade de fazer ele filttrá-los de acordo com todas as combinações que produzam resultados.
Aí a OOP faz sentido, porque eu posso criar uma classe combinação e outra classe pra implementar esta filtragem, compreende?