The reason is because Kodi treats playing of Live TV different from playing Recorded TV. When playing Live TV, Kodi treats the video as a constant stream, and if it reaches the end of its current buffer, it will simply go the end of the buffer and then continue waiting for the stream to continue.
However, the problem lies with Recorded TV: Kodi treats Recorded TV the same as any other media file you want to play, regardless of whether that Recorded TV program is in progress or not. Because of this, there are a few differences in how the playback is handled:
* Non-Live TV media (included Recorded TV) is assumed to be constant/stable, so it doesn't bother checking to see if its size/duration has been modified since the beginning of playback. This is why when you start watching an hour-long program 23 minutes into playback, the duration listed in the OSD is 23 minutes, not 1 hour. (There is a slight exception to this that I have noticed with Tvheadend, but not other backends like MythTV: when the playback reaches the 23 minute point and beyond, the pvr.hts addon will update the duration of playback to match your current position beyond where is was when you started.)
* You cannot seek beyond the end of playback: In Live TV, when you seek beyond the end the existing buffer, you are placed at the end of the buffer to continue receiving the live stream. However, with finite media (such as Movies, TV Shows,
and Recorded TV) when you seek beyond the end of the file, playback ends. This is why if you FF or seek beyond the current live position of a recording-in-progress, the playback ends and you are returned to your Recordings list (or wherever you last were in the Kodi interface).
There is also another weird interface bit: In the Recordings screen in Kodi, the duration listed is what the EPG duration for the recording was, not the actual Recording itself. If you have set additional pre- or post-recording padding (such as one might do for a sporting event), this extra time will not be displayed in the Recordings list. However, when you start playback of Recorded TV, the OSD duration reflects the actual duration of the recording because it is reading the file itself, not its database entry.
I know this seems a bit long winded, and it can be odd to understand. One would assume that all Live TV and Recorded TV would be handled similarly, but that is not the case in Kodi. Live TV is considered special, but Recorded TV is merely seen as a different type of finite media, more akin to Movies and TV Shows and not related to Live TV. While this may not align with what a common user might expect, it is how Kodi currently handles it.
(There are some big changes coming with how Kodi handles files and streams in 18, but those changes are not slated for 17. While there are PVR improvements coming for Krypton/17, the situation with the differences between Live/Recorded TV is not one of them.)