On the subject of xine, amarok uses xine, and it has it's own volume control which doesn't affect the PCM or master settings, so it must be possible with xine-lib to do this. Whether or not that possibility is used in the gxine front end I don't know.
xmms has an option to use it's own volume control. Go to
-> Audio I/O Plugins (tab)
-> Output Plugin (listbox, select ALSA, click configure button)
-> Device Settings (tab)
-> Mixer (pane)
-> check the "use software volume control" option.
I find a short lag with this option, and I suspect it uses up some CPU.