Well, intrinsic complexity can be split, but artificial complexity might be added on top of it.
Languages and libraries that are well designed and compose better end up being great at taming complexity.
Functional languages are made to compose better, but their popularity is a hint that they are not that simple to use effectively.
you either create a complex program, with simple language constructs, or a simple program with complex language constructs
if you use only the simplest types, your program will be very complex, if you put all the complexity in types, your type system will be very complex
you need to balance things
i think OOP is the extreme where all the complexity is in the Object system (or types system)
functional programming with complex types, i think give a nicer balance, where some logic goes into the program flow and some goes into types
anyway balance is everything, keep things balanced , dont lean too much into any direction