Você tentaria persuadir seu cliente que o uso de programação orientada a objetos é muito mais limpo?
Eu acho que você precisa se educar mais sobre paradigmas de programação. O código programado orientado a objetos não é necessariamente mais limpo e, de fato, não é universalmente aplicável. Além disso, um bom codificador orientado a objetos sabe como fazer um bom trabalho usando um procedimento / modular (com paradigmas funcionais e declarativos, é um pouco mais difícil, mas não deve ser excessivamente difícil para um bom programador chegar - via leitura e dedução - para uma solução FP / declarativa aceitável.)
Repito: você quase nunca pode, mas quase não consegue entender bem quando e como usar a Orientação a Objetos sem entender bem a programação processual e modular. OO é muito mais do que apenas declarar classes e hierarquias de herança.
Ou você tentaria seguir o que ele exigia e fornecer um código ruim?
Se você não pode escrever um bom código processualmente, duvido que possa escrever um bom código de maneira orientada a objetos. Período. Não estou tentando julgar aqui, mas isso tem que ser afirmado.
Orientação a objetos é uma extensão da programação processual e modular. A Orientação a Objetos simplesmente fornece ferramentas que, quando usadas adequadamente, oferecem melhores mecanismos para lidar com problemas de encapsulamento, acoplamento, coesão e reutilização / extensibilidade de código.
Mas todas essas questões não são inerentes e exclusivas ao OO. Eles existem em código processual / modular (e em outros paradigmas). Esse é o tipo de questões de complexidade que, em sua essência, são independentes de paradigma. Se você não pode lidar com eles sem cola OO, é improvável que você possa lidar com eles com ela.
=========
Voltando à sua pergunta original, tente persuadir seu cliente. Depende. Como o pôster Sean McMillan disse, se o cliente está simplesmente tentando microgerenciar o esforço de desenvolvimento de alguma agenda (leia-se, política do escritório), vá embora. As pessoas que fazem isso sabotam projetos para culpar outra pessoa ou forçar uma agenda específica. Você não quer se envolver nisso.
OTH, pode haver outras razões para esse requisito. Muitas lojas incorporadas, por certo ou errado, optam por impor muitas restrições ao que você pode fazer com C ++ (sem métodos virtuais, sem exceções, por exemplo). Outras vezes, existem razões técnicas válidas para isso.
Então, você precisa entender por que o cliente deseja evitar o código OO. E se você puder supor que não há agenda política (sem bandeiras vermelhas), faça o que é profissional, o que é simplesmente fazer o código processualmente / modular e fazer um bom trabalho.
Realmente não há desculpa para fornecer código de baixa qualidade, independentemente do paradigma de programação. Se você não pode produzir código aceitável com um paradigma, certamente não pode produzir código aceitável em geral.