Forget the models I proposed there for a moment, 'cause I got a new one (with matching diagram, of course). I suggest that the volume of the sound is determined by how far events are located from the middle of the screen. Here's what it would look like:

The white plane is a portion of the map, and the camera sees everything in within the blue line (I used the approximation that the camera sees a circle, not a square). The purple line is the direction along which the camera looks. Now the bright green dot is the location of a sound event. The green line runs from the the sound event to purple line to which it is perpendicular, and lies in the yellow plane.
In the current situation in Spring the red line (from the camera to the sound event) is used for calculating the volume; I propose we use the green line instead. This way the sounds won't fade away when you zoom out a bit: the volume only depends on how far things are from the center of your screen.
There is a minor problem though: I don't know how to implement this nicely. It can be done with the camera->rot.x and camera->rot.y properties, but I think OpenGL (of which I know absolutely nothing) has a few commands that will come in handy. I'm thinking in the direction of "getting rotation matrix, rotate locations of camera and sound event, calculate the length of the green line," but that's as far as I get.
Any suggestions?