Как действительно поможет ООП в реальной программе?
ООП упрощает код, логику и понимание...
Но только в случае подготовленного человека. Соответственно пока нет осознанности в происходящем и опыта, то ясен пень — будет сложно и не понятно

В случае (процедурщина && сложная большая кодовая база)  подготовленные спецы путаются в большом коде, в виду запутанности.
Крч все доводы работают для ситуаций, когда программисты уже программисты, а не желающие ими быть.

Как поможет ООП: 
Очертит ваши абстракции явно названием, состоянием и поведением, а также описанием в коде. 
Позволит добавлять новые типы легко и всегда контроллировать той или иной контекст в виде осмысленной единицы, а не 100500 факторов, да еще и при каких-то еще условиях. 

Без ООП — абстракции не будут иметь четких границ и смысл будет в разобранном состоянии собираться из крупиц по коду и данным, но и такой, процедурный подход, имеет  преимущества
ООП не про локаничный код, а про упрощение внесения изменений, т.к. все области изменений в текстовом виде локализованы в классах, пространствах имён, модулях. Области изменений непосредственно связаны с абстракциями, и чем грамотнее абстракции сформированы, тем быстрее и проще рефакторить код. В общем случае, под абстракциями понимаются не только модели и сущности, которые относятся к задаче, но и связанные с ними процессы,