Even if I did compress and reduce the file size somehow, I will still eventually hit a wall.
compression won't help you since the audio is uncompressed in memory. You can however lower the sample rate and/or use mono files wherever it's appropriate. i.e. if you have a gunshot sound that has no stereo image there's NO point in making it a stereo sound. And some less complex sounds will tolerate a lower sample rate without any artifacts etc..
You should use 44.1/16bit anything else is a complete waste unless you are editing the sounds. "Mastered" sounds can be reproduced totally acceptable at 44.1/16 or even less in some cases.
Not having the option to unload assets and sound makes it impossible to make big games.
I disagree. I think limitations are found in any engine or even custom code bases. Every big game ultimately has an "audio budget" of what you can have in memory at a given time. However, I do agree there should be an unload option.. since most programming languages allow you to memset() and free() etc...
But that said, you may want to reconsider the audio design for your game... a 0.5 second sfx saved as a .wav is roughly 100KB (could be more but for the sake of argument let's just say 100). To get to 400MB that means you have approx 4,000 sfx files... I can't imagine there is a game in the world using that many sfx files. Consider if you were to hire someone to create 4,000 sounds for you.. even with variation that's like triple-A type pay... Construct 2 is only $130! I'm just saying: remember the scope.
I use and create sample-based instruments all the time, and that's the territory you are approaching... velocity layers and variations etc... even there, there are tricks to getting your entire virtual instrument into memory. You can use volume, filters and tuning via run-time software to effect the individual sounds making them more "real-like". by any chance is this a music game? (it would make a lot more sense)