I first checked the code to make sure there was not a bug causing CGWatcher to affect the gpu-memclock setting, so we can rule that out.
Next, I tested this by trying different values and stopping/starting the miner about 20 times (I have two 7950s). The --auto-gpu option does not need to be enabled for cgminer to change clock speeds, so you're ok there. What values have you tried changing the memclock to?
Here is what I noticed with the tests I've just ran:
I believe the default memory clock on my cards is 1250. If I set --gpu-memclock to 1000 or below, nothing would happen... my memory clocks would stay at 1250. This also included if I tried changing the memory clock while cgminer was running using CGWatcher. If I set --gpu-memclock to above 1000 (well I tested in 50 increments so 1050 and up), cgminer correctly set the memory clock.
I'm not sure what clock speeds you were attempting to set it to, and I'm not sure why I'm unable to go under 1000 when I know others go well under that when SHA256 mining (although I can't say for certain they use cgminer to do it). But my suggestion would be to try different numbers and see what happens. If you're using CGWatcher, you can usually tell in the first ~10 seconds what it sets the memory clock to... so if it doesn't work just stop the miner, change the setting, and try again.
If this doesn't work for you I can try helping again in the morning... but this is not a CGWatcher issue so I can't guarantee it is something I can fix.