I think I'd also have included comments (again, my parsers always accept them), since a big JSON use case is config files and the like. The main reasons for omitting comments were grammar parsimony and avoiding something unnecessary which implementors might mess up, but we also wanted to thwart the horrible anti-pattern of putting metadata in comments.
In retrospect I think I might want to have included some kind of syntax for binary data, though this is a bit more speculative since JS itself has no such syntax. Even more speculative would be some provision for internal object pointers, to allow non-tree data structures to be encoded, but that's really playing with fire.
Primitive support for things like dates and times seems quite a bit more dubious to me, since the syntax for these isn't as basic, as timeless (pardon), or as universally agreed upon as it is for, say, numbers and strings. Perhaps more generally useful would be some way to annotate values with arbitrary type tags that could be registered with the parser (i.e., something like the replacer/reviver mechanism, only usable), which could be used for things like dates but also for other stuff. Conceivably one might take ES6 template strings as a point of inspiration, but now we're definitely speculating.