A CdS photoresistor is going to be a heck of a lot linear than a FET in
the linear region -- you'll get to the same place with a lot less fuss
and muss. Of course if it's a one off then there's a lot of fuss and
muss to be avoided just by buying a VGA or a good multiplier.
What sort of response speed do you need? You need to filter out the
"bumps" from a 50Hz sine wave, which is going to significantly limit your
response speed. There are ways to speed this up (detect zero-crossings
and "filter" by integrating and dumping is one way), but they're error
prone unless you have the right signal.
And, of course, if you're starting with an amplitude-modulated signal,
then the worst thing in the world would be cycle-by-cycle AGC...
If the signal needs to handle random waveforms then make sure you know
_what_ you want to be constant -- the peak to RMS to average absolute
value ratios are all fixed for a sine wave, but are very much not so for
random waves.