Okay, I tested it, and it's much simpler than I thought. I.e. they have been lying to us!
One dam per flood basin. River junctions, multiple rivers. Doesn't matter. If it floods together, it's one dam. A river can be 100 hexes long, you can have either one dam or 30.
For a dam to have a valid placement, here's what you need to do.
First, check if the river is floodable. It requires 2 hex-lenghts for the river to flood (4 floodplains).
Separate rivers have separate floods if they don't touch.
Next, check that both sides of the river are a floodplain that can flood. If the answer is yes, you can place a dam on either hex (except if one is a resource).
Next, mark pairs of hexes starting from the right side of the river (looking downstream) that can flood. Any odd number hex -you won't be able to build a dam there.
In the OP's screenshot, there are 6 hexes that can flood, and the 7th does as well, but opposite of it is a plains/volcanic tile, not a floodplain. No dam there.
So, the full requirements for building a dam are:
1. One dam per flood basin.
2. Hex must be touching a river with 2 out of 6 sides. Of these two, one must be a floodplain.
3. Hex must have a teamed up hex that can also flood, counting from start of the floodplain set (from source downstream).
4. Any hex that can't team up with another hex (in case other hexes are alread teamed up), can't build a dam.