The checkpoint LSN should be after all committed updates.
The test in
WT-3434 demonstrates that checkpoints are saving the LSN of the last log record written before the checkpoint started. That means recovery will roll forward that log record, leading to unnecessary work (not just applying the update, but recovery will itself take a new checkpoint).
If checkpoints write a log record when they start, they can use an LSN that is always greater than any previous commits and avoid this issue. I think we didn't do this originally because we didn't want to write to the log when all trees were clean, but we now track that directly.