In my experience there is also a fifth possibility: If client is unaware of the bug, would “fixing it” lead to them filing a ticket because the application now behaves differently than expected?
I’ve also encountered several “load bearing bugs” where subsequent integrations/workflows were designed to accommodate the bug. Sometimes this was because the bug was known but couldn’t be fixed at the time, or the developers assumed the program was working correctly and accommodated the bug thinking it was expected behavior.
Therefore fixing the original bug would raise questions about what else needs to be updated as well.
I like to call that category of bugs "landmines". Hidden till you step on them, then all hell breaks loose.
Never underestimate the power of the steady state of the system. Sometimes inaction is better than perfection :)