Hi Mohamed,
"Don't tag for the renderer" is a general rule of OSM, which actually
means "Don't deliberately enter data incorrectly for the renderer".
Personally I prefer to speak in a way that can be understood by the
people I'm speaking to and in the same vein, I prefer to tag my data in
a way that can be understood by my favourite OSM maps. So I can
understand that it's frustrating if your work is ignored by a map that
you care about.
One way to deal with it would be to draw the dam as a simple way instead
of an area and tag it with waterway=dam and highway=*. 1136 or 1.21%
percent of dams worldwide are tagged this way, e.g. in Montsalvens
(http://www.openstreetmap.org/browse/way/37300714).