On a 32-bit platform, the usable buffer file size is limited by the size of process address space, since the buffer is memory-mapped to share data between the various programs. Essentially, the buffer file acts like a big swapfile. The limit will be 1GB, 2GB, or 3GB depending on how your Linux kernel is configured. This is called the "kernel/user split" and refers to how much of the 4GB address space the kernel keeps for itself and how much is available for a program. I've probably gone into way too much detail here already, but the upshot is that most Linux distributions would configure the kernel so that 3GB of address space is available, meaning that your buffer file size will be limited at just a bit less than that.
Anyway, buffers on the order of 1GB or 2GB should be enough for doing replays of something that "just happened". A 2.5GB buffer will hold about 10 minutes worth of video if my calculations are correct... (mjpeg_config.h by default configures the buffer to allocate 128kb/frame, so 1 MB = 8 frames, 2500 MB = 20,000 frames = 667 seconds?). Keep in mind that, on a 32-bit platform, 2.5GB of buffer will be your total limit across all sources. So if you were planning a four-camera system, your replay buffer would go about two and a half minutes back on each camera... (2500MB total limit divided by 4 cameras, times 8 frames per megabyte...)
I also can't speak to encoding performance on a 32-bit platform, having never tried it, but it should be fine as long as the CPU is fast enough.
Hope this helps,
-Andrew