Yes. The culprit would seem to be interaction(), as in
x <- y <- z <- 1:999
i <- interaction(x,y,z, drop=TRUE)
Error: cannot allocate vector of size 3.7 Gb
which is happening due to the occurrence of three idvar variables. This
works basically as interaction(x,y,z)[,drop=TRUE], i.e. it first creates a
factor with 999^3 levels, and removes the empty levels afterward.
In the absense of a better interaction(), you might try making your own
single idvar as do.call("paste",tbl[,c("ID", "DATE1", "DATE2")]) or so.