I've booked a standard room in a hotel with booking.com for early March a month in advance for the price of X. This booking is cancellation free until my arrival. Today I've noticed that the very same room is available for those dates 15% cheaper, and that for X I could book now a superior room for these dates. Of course, I can book it now, and then cancel my previous booking - but is that a fine behavior, and perhaps there's a "cleaner" way to handle this? For example, perhaps I should just contact them directly?
Let's take a look at the facts:
You've signed a (virtual) contract with the hotel stipulating that you are free to cancel your stay for any reason
The hotel now has an offer to book a room for a better price
Given the circumstances I'd say there's nothing illegal/immoral in going for their offer and getting a better deal. It's not your fault if they suddenly lower their prices.
It's clearly legal as you are abiding by the terms of the contract.
Considering the ethics: Hotels and airlines use complicated revenue optimization systems that carefully monitor the supply and demand. Just recently I looked at a hotel in Vegas where the same room in March varied between $46 and $599. As a customer you have every right to play the same game!
Also pretty much all refundable rates these days are considerably more expensive than a rate that can't be cancelled. So your rate already includes effectively an "cancellation insurance premium" that the hotel has slapped on top of the regular rate. You paid for it, you may as well use it.
Call the hotel. Ask if they would prefer you to cancel and rebook through booking.com, or cancel then rebook direct. They will be paying a commision to booking.com, so may prefer the latter. Or they may have an agreement with booking.com that they won't 'pirate' contacts made through that system. Ask.
As per your tag I assume that your booking has been through Bookings.com
Here is a relevant extract from their policy.
We want you to pay the lowest price possible for your product and service of choice. Should you find your product or service of choice booked through the Platform, with the same reservation conditions, at a lower rate on the Internet after you have made a reservation through us, we will match the difference between our rate and the lower rate under the terms and conditions of the Best Price Guarantee.
I have personally never had to do this. But you sure can try this. And I suppose they should consider cheaper price available from the same site also.
Additionally, they only allow this if your booking exactly matches with new one on any other website. For example, if you book a regular room for 30$ and next day you see that all the regular rooms are sold out and the hotel has discounted Superior rooms to 30$ or even less, you are helpless in that case.
If they offer it now for less, it is absolutely ok to rebook and cancel the old reservation. I have done that multiple times. Why should you pay more, even though you were willing to commit earlier? They expect no different, and they are willing to accept that. Don't even talk to them about it, just book again, and then cancel (watch the sequence! Otherwise, you might end up with having no room)
I'd say it's fine. After all, at the time you presumably paid for a cancellable rate, so perhaps paid extra anyway. Though I would ensure the rebooking has gone through before cancelling, just in case e.g. there was only one room left at the cheaper price.
I have actually done this (direct, it is "hub by Premier Inn" so I don't think you can book other than direct).