I've set online status to only be visible to those who are registered members i.e. guests can't see who is online (either status or the online new/recently online blocks). We're a small community and we all know each other quite well, so I can't see a need to hide online status. However, we do have at least one member who does.
Rather than remove their right to hide themselves from others, I took a different approach. If someone wants to hide their online status so that others can't see them then that's fine, I've used conditionals so that hidden users also can't see who else is online. If you want to be hidden then that's fine, but if others can't see you then you can't see them.