They will do whatever it takes to record profitable operations. While we can all think that $3.95 may be a large fee, it really isn't. If you stay at a hotel and order room service, you usually always provide a tip, and then you have to pay for the food. Sure is a great deal, when you can order anything on the cruise line room service menu, and only pay $3.95. That's pretty darn cheap. Also delivery is pretty quick.
There is no denying $3.95 is reasonable for room service compared to a land hotel. The problem is though,for years and years cruise lines have used the argument that they are a better value than land vacations because of their inclusiveness. It seems each year cruise lines are adding some fee or surcharge and slowly evolving away from being inclusive.
Yes, cruise lines need to make a profit and satisfy stock holders. As does any company. When cruise lines add surcharges and raise prices of on board purchases people just find ways to skirt around the added cost. If they raise bar prices more people will "sneak" booze, if they raise photos people will buy less and copy pictures at home, raise shore excursions people look more at outside excursions, add the room service surcharge and I see people wrapping up food from the Windjammer.
What the cruise lines need to do is stop this nonsense of such volatile cruise fares. Charging a price and then rebating $200,$300, $600, etc. at final payment or before sailing. They need to have a more steady cruise fare. Then they would have their profit up front. No skirting around the cruise fare.