TTL can also be specified in the query thus it has been defined as optional. We can make this clear in docs.
We'll have to have Ramesh weigh in here on the intention. As the before script still runs I would expect that the job should be at least run the initial time and not rescheduled. Alternatively he may intend that no ttl means that the user is manually responsible to triggering a refresh/load.