From the default startup, if you run
bpy.context.scene.copy()
you get a copy of your scene that has 0 user and gets added to the orphan data.
In reality, if you save and revert the file, your scene will still be there, even though any other orphan data would get removed if you did that. However, for the users of my add-on, seeing an orphan scene would be confusing and worrying.
I could add a fake user but I find it unsatisfactory and still confusing, as you may wonder what would happen when trying to delete the scene, not to mention the unnecessary "F" in the scene's name.
So how can I make that scene not orphan without adding a fake user?
So far the only hacky workaround I found is to run some operator and then run the undo operator, which I assume does the trick because it reloads many components of the file including the scene's user (whatever it is), but of course this is far from an ideal solution.
ob.use_fake_user = True
prevents a zero user count. $\endgroup$