If there are pieces of forest inside a residential area, that are not natural (were planted 30-40 years ago), and they may cross the borders of the area (so I can’t always use a multipolygon), how can I mark them correctly?
Your question is not clear or too easy : if the landuse forest is inside the landuse residential, then you have the multipolygon relation (as you already suggested). If the forest polygons are between adjacent landuses, then you simply draw them. It’s not overlapping, you just share the same nodes between the polygones. Nothing special here.
This just shows the natural=wood / landuse=forest tags are a bit useless IMO.
The landuse is not necessarily related to what’s on the ground (ie the landcover). I think it would be better to just have one tag for any area (mostly) covered by trees, whether it is “natural” or not. Then use additional tags to describe whether it is managed, and what it is used for etc.
I would suggest just having a tag for something like natural=trees, for any area (mostly) covered by trees, and depreciating the tags for natural=wood / landuse=forest / landuse=wood.