I'm pretty sure the answer may vary by airline.
AA, for example, lets you change your seat online as often as you want, but once you check in online, you can't change your seat until you get to the airport. My rule of thumb is not to check in until I'm satisfied with my seat, since there's no real benefit to earlier check-in (except in event of flight cancellation).
It's worth noting that while the best seats tend to be the first ones chosen, as the flight gets closer, some very good seats may become available.
- Elite passengers may free up good seats as they upgrade into F.
- Some seats are held for airport assignment (for passengers with mobility issues), but may end up being available to anyone.
- Last minute changes, especially business pax deciding to take a different flight.
- Passengers going standby or same-day-confirmed onto an earlier flight.
I can't tell you how many times I've been on flights that showed only middle seats a few days before departure, but where my persistence in re-checking has meant I was able to snag a great seat before leaving for the airport.