I've digged around this a bit more...
In version 3.1 alpha it works the same way, which means: does not work!
I've checked the GODOT source code, and there are corresponding lines like this:
float dist = global_pos.distance_to(screen_in_global); //distance to screen center
if (dist > max_distance)
continue; //can't hear this sound in this viewport
float multiplier = Math::pow(1.0f - dist / max_distance, attenuation);
multiplier *= Math::db2linear(volume_db); //also apply player volume!
And this looks all alright - I understand this and it seems it should work as expected.
Though it does not work at all!
I've tested max_distance property values from 1 to 2000 and measured distance from kamera to sound emiter. Sound comes out even if over the max distance value.
I've tested attenuation curves - absolutely no effect on the volume.
Finally I've tried to set the volume_db parameter myself and it also does completely nothing!
Now... Either I am incredibly stupid and do not get something, or this thing does not work as expected!
I've also tried to find an example on AudioStreamPlayer2D usage and there is only the platformer demo, in which it behaves the same way - always plays at max volume. Or at least I did not noticed any difference in volume.
Does anyone have a working case? Or is this really a bug?