While you can get used to the whole hidden from renders/hidden from viewports thing, there are situations where it can be pretty irritating to troubleshoot preview/render differences, since you have to actually render to get render settings. This isn’t just visibility settings, but modifier and particle settings as well, “simplify” plays into it, wireframe object display isn’t respected by render, etc-- so many moving parts, so many different interfaces to check. It’s easy for a difference in subdivision levels to accidentally break a surface deform, which, if on a non-rendering mesh, might break a shrinkwrap to that mesh on a rendering object, and then you have to figure out what’s happening, render by render, because the viewport’s not going to show you where the problem is.
For sure, all of that is fixable with a script that remembers preview settings and then toggles between render and preview settings for a preview, which would let you rapidly check your scene for problems before shipping to a render farm. But yes, I don’t understand why such a script isn’t built into Blender.