I'm not using MC's replay gain functions, so i'm not the authority on that topic. I've done a lot of research and testing on the topic of replay gain in general, though.
What you're hearing is the basic problem with track-based replay gain, as MC does it. Each track will play back at the user-defined volume level, no matter if it is a "quiet" track (classical music, ballads, etc.), or a "loud" one (metal, rock, etc.). As volume perception is subjective, "quiet" tracks will sound much too loud with applied rg. This problem is inherent to the track-based replay gain system.
The solution is to use album-based replay gain, which calculates the avarage volume level of all album tracks, and then uses the same replay gain value for all tracks of an album. Using this technique, the intentional volume differences between tracks are kept intact. MC doesn't support album-based replay gain, AFAIK.
I've described my own solution for the problem in a number of threads. Search the forum for "replay gain", and you should find a lot of info. In short, my approach is to use "hard" volume correction, which is applied to the audio files directly, not via meta data. Of course, that approach has pros and cons.
EDIT: ah, i've just checked MC's options, and it seems i'm wrong - MC does support album-based replay gain! Under "Options/Playback/DSP & output format/Volume leveling", you can select "Album based" in the the "Mode" dropdown. I'll stick to my more complicated approach, though, as it has a number of advantages for my use. (;