For one, running in debug mode with recording on is very expensive compared to even normal debug mode; it also consumes a lot more memory.
It is easier to decrease the granularity from line level to function call level. For example, the standard debugger in eclipse allows you to "drop to frame," which is essentially a jump back to the start of the function with a reset of all the parameters (nothing done on the heap is reverted, and no finallys run blocks are not executed, so it is not a true reverse debugger; be careful about that).
Note that this has been available for several years now and works hand in hand with hot-code replacement.