Поможет ли функциональный ЯП (например, Haskell) лучше понять ООП (С++)? Если да, то чем конкретно он поможет?
ФП - очень крутая парадигма. В теории, может помочь понять ООП, через взгляд со стороны, но не факт.
Знание в принципе полезное и оправдывает затраченное время.
Но я бы посоветовал взять какой-нибудь более простой язык, чем хаскель - например F# (тем более он объединяет ООП с ФП).
Или раст - он тоже имеет черты обоих парадигм, но с ним тоже есть свои нюансы.
Хотя если хочется совсем мозг сломать - берите Idris и погружайтесь в доказательное программирование.
Нет, не поможет. Понять ООП поможет постоянная работа с этим самым ООП и чтение литературы. Советую с нуля попробовать собрать свое приложение без использования фреймворков и библиотек, и при этом стараться следовать best practices для выбранного ЯП. Приложение можно и не дописывать, но когда сами начнете ковыряться с понятиями и их применением для правильной компоновки компонентов приложения, к Вам будет приходить более полное понимание каждого отдельного пункта определения ООП :)