How many GPUs can you simultaneously output from using a single PC? I'm aware that it's technically possible to connect a large number of GPUs to a PC for mining purposes https://www.pcgamer.com/asus-has-a-motherboard-that-supports-up-to-19-gpus/, but how many of these can actually be used simultaneously for graphics output?

For example, if I wanted to use these all independently for a CAVE https://en.wikipedia.org/wiki/Cave_automatic_virtual_environment like system, where each GPU will render its own independent view to its own monitor. There should be very little interaction between GPUs. Is there some limitation of the OS, or graphics driver that would prevent me from doing this with more than something like four cards?

To be clear, I'm not interested in anything like SLI here, just using each GPU independently from a single application (think split screen rendering, but each player having their own monitor). I'm currently experimenting with this from Vulkan with two GPUs, but the graphics API isn't important to me if that puts some limit on this. I'm just curious what the upper limit is for this kind of setup.

Here's an older example of the kind of system I have in mind: https://www.jvrb.org/past-issues/9.2012/3511
I don't think there are any specific limits. Each GPU can probably drive three or four monitors, and with multiple GPUs in a system, I don't think there's any barrier to hooking up the maximum number of monitors to each GPU. Here's a video, for instance, detailing a 16-monitor machine with 4 GPUs, on Windows.

Googling around, I did find some people stating that Windows has a 16-monitor or 64-monitor overall limit, but I couldn't verify this from any official documentation. I also saw some claims that Windows has a limit on the overall desktop size that the monitors are virtually placed within, but again could not verify that. In Linux any such limits (if they exist) would naturally be different, and presumably would depend on which window system you're using.

The other potential limiting factor would be CPU performance and PCIe bus bandwidth for keeping all those GPUs fed with data.