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.