What you suggest about picking a room well in advance of your stay is not practical. If a hotel is not full, people can, and do, decide to extend their stay. Having to move rooms might be a deterrent to someone continuing their stay, which doesn’t advance the hotel’s interest in selling rooms.
Similarly, sometimes people have to leave early. The hotel does not want ”orphan” room nights that they cannot easily sell. The hotel wants to maximize the opportunity to fill every available room every night.
A hotel generally doesn’t have an issue with you picking a room an hour or so before check-in time, as it can be pretty sure at the point about people being out of their room, there not being an issue with a room, or various other things that might interfere with getting the room one picked. Imagine the complaints and requests for upgrades or other compensation because the room I thought I reserved wasn’t the room I requested.
The only exception to this approach is for ADA rooms of various sorts. There are federal requirements that, one a reservation for an ADA room is made, it is taken out of inventory.
The reason behind this is pretty simple: another, non-accessible room is not a reasonable substitute for an accessible room, and not all accessible rooms have the same accommodations.
I happen to have a mobility issue. I CANNOT step into a combined bath/shower. I need a zero-entry shower. “Upgrading” me to a suite without a zero-entry shower means I can’t take a shower at all. it’s not a bonus to me and can be a major detractor to a stay (think about going to business meetings for five days with no opportunity to shower).