OTrigorin :
Sort of. Say that $30USD game is 120,000 RUS. You buy it for that from a Russian Steam Account. But now that 120,000 RUS is actually only $20USD because the price of the Ruble has fallen off a cliff. So you take that $20 game and sell it to your friend in the US for, say, $25USD. You make the equivalent of $5 profit, your friend pays $5 less for the game, and Steam loses $10.
No they don't. Or at least they don't lose money if they're doing it right.
Companies operate in other countries and have to exchange currency all the time, so are always vulnerable to currency fluctuations. The way this is usually countered is by striking a 1-year (or sometimes multi-year) contract with a currency exchange service to convert Rubles to USD at a fixed rate. Done properly, this (1) insulates Steam from fluctuations in the RUB vs USD rate, and (2) makes the exchange service some money since they pick an exchange rate favorable to them for taking on the risk of currency fluctuations.
So given your numbers, the way this is set up is Steam sets the price of a USD$30 game at 120,000 RUB. The currency exchange service bets the RUB won't drop more than 10%, so offers to pay Steam $27 per 120,000 RUB. Essentially they're providing Steam insurance against a drop in the RUB, and charging a 10% premium for it.
If the RUB doesn't drop, then the exchange service wins and pockets the 10%. If the RUB drops, then the exchange service ends up making less money or losing money. This arrangement basically shifts the risk of financial loss from Steam to the exchange service (who stands to make a 10% premium).
Next year when Steam re-negotiates with the currency exchange service, the new lower value of the RUB and its greater risk of decline gets taken into account. And the $30 game goes up in price in Russia to 180,000 RUB. During all this, Steam never loses any money.
At least that's the way the smart companies do it. And they don't just do it with currency too. When oil prices skyrocketed around 2008, Southwest airlines was minimally impacted because they'd struck a deal with an oil supplier for a fixed price. All the other airlines were bleeding money from the high fuel prices, but Southwest was still paying 2006 prices (its supplier was losing money because its contract basically forced them to sell fuel to Southwest at below-market prices). If there's anything which could wreak havoc with your company's finances if the price changes drastically, smart companies figure out a way to offset that risk. Stability and predictability is more important than bigger profits.
So there's really no internal rationale for Steam to be region-locking the game if they were smart about currency exchange. The only reason I can think of is that the currency exchange service demanded a clause in the contract stipulating that they will only exchange up to a certain number of dollars for the year. Put a cap on their potential losses basically. The RUB going down may cause sales to shift into Russia from elsewhere in the world, causing the amount of money exchanged to rise enough to trigger that clause. If that happened, Steam would be forced to shut down sales in Russia. So they may be using region locking to avoid that, and allowing them to continue selling games to Russians.