The reason is for a clip that goes from 0 to 1, the clip is only evaluated between 0 and 1 - e, where e is a very small value. The endTime is exclusive.
There is an open bug that the recording rectangle isn’t properly recognizing this.
The reason for this behaviour is so only one of adjacent clips will evaluate, and this gives priority to the second clip. You need to extend the clip a frame to actually set that keyframe and see it evaluate.
I knew there was a good reason for this, glad this bug is being worked on.