The issue is duplicated code. There are two functions that zero-fill
the frame number. They worked the same for positive frames numbers, but
behaved differently for negative ones.
This should probably be deduplicated, maybe @Sebastián Barschkis (sebbas) wants to do that.
On frame -100, BLI_path_frame outputs -0100 and
fluid_cache_get_framenr_formatted_$ID$ outputted -100.
I changed the behavior of the latter, because we depend on the behavior
of the former for much longer already.