I have also given this some thought. I felt the primary concern (in terms of realism/performance trade-off) was that spatially your ears are inferior to your eyes - and quite easily accept something that might not be as realistic as your eyes would need. There is a very good chance that trying to perfectly model sound in the local environment is overkill - EAX is probably 'good enough'.
In a closed environment (e.g. Quake) I would firstly calculate two properties about each room: 'transferrance' and immersion:
Transferrance would indicate how the sound would be affected by travelling through this room and would most likely count toward a parametric EQ (ideally you would add echo/reverb from each room, but your EAX chip might not have this much bandwidth). The parametric EQ would also ultimately simulate the sound attenuation.
Immersion would be calculated by splitting the room into nine cubes (possibly, even just one might be good enough) and calculating the local sound properties from that perspective. These parameters would be used in the EAX environment.
Finally each of your rooms would be connected by a graph, where each point in the graph are the portals connecting each room.
When the sound triggers you would do a flood fill (no an A* search) and keep track of the the transferrance and distance travelled. When the sound reaches the player you would queue it up to play at some point in the future; based on the distance travelled. You might keep track of the number of graph points passed and eventually 'cull' the sound (in other words, a continuous flood fill). You might have to use CUDA to do this as it could get CPU bound.
When a sound plays you would use a 3D sound API (OpenAL) to and place it at the portal at which it entered through, you would then find out which of the nine cubes the player is currently in and apply that EAX environment.
The neat thing here is that if your environment is sufficiently complex you would get free 'global' echoes and players would perceive sound coming from the right direction; and if you get the EAX environment correct hopefully the effect would be convincing enough that the brain would accept it.