Is it fair to reduce OOP to mere hierarchical composition of data structures?
Meaning that OOP allows me to have data-trees, of arbitrary depth and breadth, with some leafs being functions (and those leafs would be called methods) ?
I guess you can choose to look at it that way, but I don't believe it's a particularly useful way to look at it. Specifically, your use of the word "data" (even if you specifically mention functions in there) seems to reduce OOP to a way to model data (or at least, to a data-centric approach). In my opinion, this is missing the point.
OOP is a particular way to structure code; both behaviour as well as data. Its main ideas are the normalisation of behaviour (DRY principle), as opposed to, say, the normalisation of data (as in the relational DB concept), and concepts like encapsulation. At its simplest, encapsulation is achieved by providing an external interface to classes (your public stuff), and an internal implementation (private / protected stuff). This is quite different to "traditional" modular programming, since your "module" boundaries are structured completely differently - in the case of OO, each class is a mini-module.
It is also important to note that the concept of encapsulation, in the generic sense, is quite different to a specific implementation of encapsulation. OOP has a specific way that encapsulation is done, inherently (of course, I'm only referring to the core cases here, not patterns, etc). Inheritance and polymorphism are much more OOP specific ways to achieve other principles (code reuse being one of them). I'm not sure I'd lump them in the same sentence as encapsulation, they exist at a slightly different level.
OOP also tends to map quite nicely on to a problem domain, allowing you to model a problem in a way that remains understandable to semi-technical users.
What was the point of going through the above mini OOP discussion? The above is the best I can do to summarise OOP in a few sentences - it highlights the main points of OOP from the perspective of someone who has worked with the technology for a long time. I don't think reducing it to a hierarchical composition of data structures does it justice. We can also reduce it to an array of characters in text files, but it doesn't mean that it captures the essence of the paradigm.