I can tell you that in my thirty or more visits to Saint Petersburg, I never had any trouble spending cash, be it dollars, roubles, Finnish Marks or Deutsch Marks. I did find it difficult to cash travelers cheques and use the ATMs. Many US banks will not allow access to accounts from Russian ATM machines because of fraud. If you want to use your US ATM card in Russia, it is a wise thing to notify your bank as to the dates that you will be in Russia so that you account will be permitted access during your visit.
As for the use of foreign currency being illegal, it always has been so, but I have spent over 100,000 USD there in cash without any police interference. There is an old saying, "In Russia all things are illegal but in Russia all things are possible". Do watch out for the Gypsies, Sigan in Russian, they will rob you. Do not be afraid of assulting them vigorously to prevent the loss of your wallet, passport and visa.
David