Possible? Absolutely. Weather it’s good or not is kinda a matter of opinion, and how complex your game is going to be.
Limitations I think would be; scriptable objects don’t save when you exit, so you would still need a way to save the player state when they leave the game. If you have enemies with health, stam, hunger, etc, they should also use a similar system to keep your game logic consistent. It’s kinda unnecessary for consumables though, as they can just directly modify the player health with no need for the middle man.
This would be fine for something like a solo survival game, or something without a lot of enemies or other players, as you would need to create their scriptables at runtime, and assign them for basically no extra functionality. For the player, it’s really only useful for updating the UI without causing possible NULL REF ERRORs
If the camera is part of the player’s prefab, then you’d probably be just as well off setting a direct reference to the player’s stats through your UI manager.
Alternatives would be like I mentioned above, and just set the references directly, or to use a mediator to relay information from the players stats to the UI manager or consumables. The mediator would actually work very similar to the scriptable object, but would not hold any of the data, you wouldn’t need to make one for everything that has stats (because they can all share the 1 mediator), and would only update the UI when you told it to, not all the time (unless you told it to, lol).
All of these are fine options depending on the scope of your game, and how much you want these systems to do.