This technique is called Dynamic Range Compression and has been used (abused?) by the music industry for the last century. You're right though, weird that I don't tend to think of it on the device side. One issue I've run into is that it's surprisingly hard to hijack your computers outgoing audio stream for processing. OS level audio routings honestly sucks.
The better place to implement this (in my opinion) is in the games themselves. I've seen a few games (wish I remembered which) recently that offered a few choices in their audio settings so that you can request reduced range for more consistency in noisy listening conditions or full dynamics for people with nicer setups.