I've seen this behaviour a few times. I think I've found a clue as to what causes it.
Probably affects me more than most people as I regularly load the scheduler with 30 or 40 short jobs for a single night.
The behaviour I see is that some 'valid' jobs get pushed out to the next night. Even though they could/should be scheduled right now.
I have 2 screenshots which explain the problem and also show how I work around it.
Screen shot 1:
This screenshot was taken on the night of Jan 16. However some jobs (example rows 2 & 3) are at a good elevation and moon distance right now but get pushed out to tomorrow (17th Jan)
NOTE: Take note of the first row with a <0 score. Deleting this job and clicking the refresh/reschedule button fixes it (see screenshot2)
Screen shot 2:
This screenshot shows the exact same schedule except I deleted the first job which had a score <0 (also deleted other <0 jobs) and clicked the reschedule button above the grid.
All the good jobs immediately change date to the 16th (now) and can be ran.
I'm not sure how to further debug this but I think when there is a score of <0 it messes up the next jobs in the list.