When you "waterproof" clothe/canvas, you do two things to it. First, you use some form of liquid or chemical to soak into the threads, and swell them up. And you sometimes also use something like clays/pigments to fill in the gaps between the threads. This all closes up those tiny gaps between all the threads as they are woven up. The better you can close up those tiny gaps between the threads, the more "waterproof" it is.
So the "oil" soaks into the fibers in the threads, and swells them up. It also helps slow down any water from soaking into those threads.
But the primary reason for the pigments is color. Spanish Brown is what you get from iron oxide. Lampblack was also a common color. Lampblack is "soot" collected from burning fires and candles/lamps.
Those old canvas covered canoes had a special clay spread over them and worked into the canvas. That clay filled in all the openings/gaps between the threads, and became something of a "plaster" type coating on the outside. This would them become the "waterproof" outside layer of the canoe. Their early version of a "fiberglass coating".
So the pigments color the fabric, but also help in a small way to fill in the gaps/holes between the threads. And the oil soaks into the threads, swells them up, and helps close the rest of the gaps in the weave. And it then slows down the absorption of water into the fabric.
Just my humble rambling thoughts to share, and best used in conjunction with your own research.
Mikey - that grumpy ol' German blacksmith out in the Hinterlands