That should work without causing any breakage. Note that rule 3 could specify that if the timevalue is numeric and "less than 0" or "greater than 5373484.5" then it is seconds since 1970-01-01. I have personally never used (or seen) a JD value less than 0 (though unixepoch values before 1970 (as in less than 0) I have seen and used).