jsFiddle shows 3 situations:
Kick the process off with a media.load() then either:
1) Polling a currentTime change until it does not throw an exception. (No effect.)
2) Polling readyState until it equals 4 and then changing currentTime. (No effect.)
3) Polling seekable.length until is it greater than 0 and then changing currentTime. (Works!)
While in many ways it does make sense that you cannot change currentTime before seekable.length>0, on the other hand, it does not make sense that the readyState=4 when seekable.length=0.