One of the reasons hotels can only take your preferences and not guarantee you'll get what you asked for is because things change. People don't check out when they say they're going to, a room is out of service, etc. Just last week we stayed in a hotel and once in, extended our stay for one extra night. If the hotel had guaranteed these rooms to someone, they would have been out of luck.
Allocating exact rooms before someone checks in is almost like laying out the front page of a paper days in advance. You just don't know what the news will be, nor how long the story. Most hotels will try to get you what you requested. It's been my experience, too, that the earlier you arrive in the day, the better your chances are of getting the room you requested.