Water goes over land. How to resolve this?

I am trying to map and it’s my first time using QGIS, QuickOSM and OSM. I searched for 30 minutes and I couldn’t find a good answer. I am wondering if there is a key in particular to show all the water. However, when I use natural=water, it covers over some land mass. As you can see:

Now as you can see the upper island is covered by the water polygon, while the lower island is not.

So in a nutshell, I just want to have a precise polygon layer that I can get water area that does not cover land. I tried online resources such as: Natural Earth » Downloads - Free vector and raster map data at 1:10m, 1:50m, and 1:110m scales (naturalearthdata.com). However, this is not at all realistic, as I need it to be super high fidelity.

I also tried this shape layer to see if I could just have a land layer instead: Land polygons (openstreetmap.de). This also did not work; it does not render at all the islands.

I am trying to make a transit route map, by using OSM’s roads and I’d like to have the landmass and water below these roads.

EDIT: I think I will just go ahead and delete parts of the layer that overlap land using the “Delete Part” tool in QGIS. But the question remains, why some parts of the water layer is overlapping land?

Thanks in advance for your help!

The difference is, that Way: ‪Île Sainte-Hélène‬ (‪156840794‬) | OpenStreetMap is a “inner” member of relation Relation: 1775822 | OpenStreetMap (river). The water east of “Île Notre-Dame” is a different water-area:
Relation: 1775822 | OpenStreetMap