In Random mode, the Density Max socket suggests that this limits the maximum density.
However, multiplying the Density Attribute means that the Density Max can be overridden. It seems there is an assumption that the Density Attribute is likely to be a scalar value from a weight map in which case this would work.
Either this is a bug or it is by design.
If it is a bug then here is a suggested fix in the sample_mesh_surface function in source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc:
const float v0_density_factor = std::max(0.0f, (*density_factors)[v0_index]);
change to
const float v0_density_factor = std::max(0.0f, std::min(base_density, (*density_factors)[v0_index])); etc...
Otherwise the socket should just be renamed to Density to avoid confusion.




